excel 排列组合

1,2,3三个数 9个位置,
例如 111111111
133333333
123212211
要求所有的组合排列,并且每位数在独自的单元格里
比如111111111的每个1在9个单元格里横向排列,133333333在第二行横向排列
也就是说一共有19683种组合,也就是19683行,9列。好烦躁啊。。。。。。。期待高手可以写个完整的宏。

第1个回答  2009-02-14
这个有什么烦的呀,太简单了.你按以下部子做保你做成功.
有多种方法,但第一种最简单:
第一种:
1) 设计一种3进制程序,每位只有1,2,3三个数字,3+1=11(注:是3进制,首位的1表示十进制数字的3,而不是表示十进制数字10),例2333+1=3111
2) 初值各位全为1,即111111111,这样每次加1,直到每位全为3为止,即333333333
3) 每加1就记录一次数字就可以了.
注:如果没有学过大学计算机的二进制,可能不一定明白三进制如何做的,这时可以找相关的书看一下.

第二种:
1) 设定变量A[1,1]到A[9,9],初值为1,是用来记录每位数字的变化次数的.
2) 变量A[1,1]到A[1,9],用来记录第1位到第9位变化次数.
变量A[2,2]到A[2,9],用来记录第2位到第9位变化次数.
变量A[3,3]到A[3,9],用来记录第3位到第9位变化次数.

变量A[8,8]到A[8,9],用来记录第8位到第9位变化次数.
变量A[9,9]到A[9,9],用来记录第9位到第9位变化次数.(只有一位)
3) 每一位数字全从1变到3,但是是从最后一位开始变.当本位变完后,则向高一位申请变化,同时从本位开始到最后每位全要改为1例如:
111111111
111111112
111111113
111111121
4) 每次后面各位归1后,则从最后一位(第9位)重新开始循环,直到最高位(第1位)变为3且后面各位也全为3为止.
5) 每变化一次,将每一位(A[1,1],A[2,2],)A[3,3],)A[4,4],)到A[9,9],))的当前值写入变量中,每变一次生成一条记录.
第2个回答  2009-02-14
先用宏在A1到A19683把所有组合的数字赋上,再在旁边的单元格(B1:J1)写公式逐位提取数字。

在excel按alt+F11调出visual basic编辑器,然后选菜单“插入”-》“模块”写下如下的宏:
Sub add()
Dim Val As Long
Dim Cellcount As Integer
Dim a, b, c, d, e, f, g, h, i As Integer
Cellcount = 1
Val = 111111111

For a = 0 To 2
For b = 0 To 2
For c = 0 To 2
For d = 0 To 2
For e = 0 To 2
For f = 0 To 2
For g = 0 To 2
For h = 0 To 2
For i = 0 To 2
Cells(Cellcount, 1).value = Val + i + h * 10 + g * 100 + f * 1000 + e * 10000 + d * 100000 + c * 1000000 + b * 10000000 + a * 100000000
Cellcount = Cellcount + 1
Next i
Next h
Next g
Next f
Next e
Next d
Next c
Next b
Next a

End Sub

写完后回到excel,按alt+F8,运行刚才写的宏

之后:
B1至J1单元格公式如下:
B1:=LEFT($A1,1)
C1:=MID($A1,2,1)
D1:=MID($A1,3,1)
类推
J1:=MID($A1,9,1)

最后选中 范围 B1:J1, 往下填充公式至19683行即可。本回答被提问者采纳
第3个回答  2009-02-14
A1为111111111,在B1输入=MID($A1*100,COLUMN(D2),1) 回车并向右拉至J1;
再刷选B1~J1向下复制B3~J3。
第4个回答  2009-02-14
找个高手按照你的要求写一个宏吧,别的没有办法解决,找不到会写宏的,分给我吧,有点浪费

参考资料:www.51msh.com/msitemap08.html

excel如何将多列排列组合
工具\/原料officeexcel方法\/步骤1打开Excel文件,2在【编辑】功能组,【合并转换】下三角按钮→行列转换【排列组合】3【组合排列】对话框中,区域选择A2:B4,【选项】默认选择”忽略空值“,单击【确定】4拆分后结果在新建工作薄中,5最后保存文件 ...

如何利用EXCEL解决排列组合问题
在EXCEL中,有很多内置函数可以帮助我们解决排列组合问题。比如,排列数可以通过PERMUT函数来计算,组合数可以通过COMBIN函数来计算。举个例子,如果我们想要计算从5个元素中取出3个元素的排列数,我们可以在EXCEL的单元格中输入=PERMUT(5,3),然后按下Enter键,单元格就会显示出结果。同样,如果我们想要计算...

如何使用Excel排列组合计算?
要在 Excel 中进行排列组合,可以使用公式和函数。具体操作步骤如下:1.打开 Excel 软件,在空白单元格中输入需要进行排列组合的数字。2.在另一个空白单元格中输入公式“=PERMUTATION(A1:A5;5)”,其中 A1:A5 是输入数字的单元格范围;5 是需要进行排列组合的数字数量。3.按下回车键,即可得到排列组...

Excel中多列数据如何实现不重复排列组合
首先,打开Excel表格,设定G、H、I和J列作为主要排列源。目标是生成如“总公司一季度1组产品1”这样的组合。要实现这样的组合,你需要遵循以下步骤:1. 在A1单元格输入公式,根据列数(4*2*3)循环排列G列,得到“总公司”。2. B1单元格中输入公式,针对H列,结合I和J列,循环排列为“一季度”...

怎么用excel计算排列组合的个数呢?
用excel计算排列组合的个数的方法步骤如下:1、首先打开计算机,在计算机内打开excel,然后在excel界面内随意找一个空白单元格并使用鼠标点击,再在界面内找到“fx”选项并使用鼠标点击。2、然后在弹出的界面内找到“COMBIN”选项并使用鼠标点击。3、最后就可以发现成功的用excel计算排列组合的个数了。

单元格内一个三位数,怎么打乱顺序排列生成所有新百位数?
在 B1 输入:=MID(A1, 1, 1)(得到第一个数字 1)在 C1 输入:=MID(A1, 2, 1)(得到第二个数字 2)在 D1 输入:=MID(A1, 3, 1)(得到第三个数字 3)2. 使用 Excel 生成排列组合 在 Excel 中手动排列组合会比较繁琐,但你可以通过排列三位数的不同位置,将结果输入不同的单元格中...

excel数据排列组合怎么弄excel数据排列组合怎么弄的
在Excel中进行数据的排列组合可以通过以下步骤来实现:首先,你需要打开Excel软件并输入你要组合的数据。假设你的数据分为ABC三类,每类分别有若干条数据。在工作表2中,你需要整理一下数据。在B1单元格输入公式=INDEX(H$2:H$5,MOD(INT((ROW($A1)-1)\/(23));4)+1)。其中;23表示H列的每一个...

excel利用排列组合公式列出所有排列组合情况
操作过程:首先,看一下原始数据。A1和A2是两个主等级,B1:B4是四个附属等级,每个主等级都有四个附属等级。需要在C列显示出所有的组合情况。我们考虑用INDEX函数来实现这个功能。首先来看一下INDEX第二参数如何做。 双击C1,输入公式=INT((ROW(A1)-1)\/4)+1,下拉可以看到1出现了4次,2也出现了...

如何让excel自动排列组合如何让excel自动排列组合显示
1、打开\\"排列组合.XLS\\"。2、打开\\"MicrosoftQuery\\"。3、选择数据源:EXCELFILES*,不要勾选\\"使用查询向导\\"确定。4、打开存放在电脑E:盘上的\\"排列组合.xls\\"文件,作为外部数据源。5、添加\\"职员$\\"工作表到Query,并关闭。6、点击Query工具栏中\\"SQL\\"按钮。7、填写如下SQL语句: select*...

在EXCEL中排列组合怎么做在excel中排列组合怎么做表格
在Excel中实现排列组合,可以参考以下步骤:选中需要排列组合的单元格。点击“数据”选项卡中的“排序和筛选”,选择“高级”。在“高级筛选”对话框中,选择“方式为复制到其他位置”。在“复制到”框中选择要放置排列组合结果的位置。在“条件区域”框中选择包含原始数据的区域。在“复制到”框和“条件...

相似回答