是否有可能在Excel中生成一个排列表,而不使用VBA,也没有使用任何“帮手”表或行/列? 对于N列,会有N! 行。 例如,N = 3的表格如下所示: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
我在Excel文件中有什么: AB Abc 12:34 Def 56:78 Ghi 90:12 Jkl 34:56 … 我想用这些价值来实现: CDEF Abc 12:34 Def 56:78 Abc 12:34 Ghi 90:12 Abc 12:34 Jkl 34:56 Def 56:78 Ghi 90:12 Def 56:78 Jkl 34:56 Ghi 90:12 Jkl 34:56 … 说明: A列和B列可以包含文本和数字的任意组合(如果这很重要的话),这个例子只显示最常见的结构。 它应该创build仅用于“在途中”的行的组合,即“Abc … Def …”就足够了,不应该有“Def … Abc …”。 有很多例子,但我很努力地find一个这样的VBA版本与多列工作,不重复组合。 这是一个简单的例子。 但是,只有一列,它也重复了值: http://www.mrexcel.com/forum/excel-questions/412952-create-list-all-pair-combinations.html#post2046893 先谢谢你。
我有一个代码,根据8列的input生成一个排列,并连接在一起的列。 它迄今为止工作很好,但我想出了一个问题。 它在超过2行被填充时工作。 所以如果只有一行AH中的任何一列的第10行崩溃。 如果第8列只有A,则所有行都填满了A,B,C,那么它就会崩溃 我也试过了 Set col1 = Range(Range("A10"), Range("A" & Rows.Count).End(xlUp)) 代替 Set col1 = Range("A10", Range("A10").End(xlDown)) 但是那里有一个types不匹配的错误。 任何帮助将是伟大的。 这是整个代码: Sub combinations() Dim out() As Variant Dim f, g, h, i, j, k, l, m As Long Dim col1 As Range Dim col2 As Range Dim col3 As Range Dim col4 As Range […]
我正在试图组成一个篮球队的球员的所有组合。 假设有5个职位(SG,PG,SF,PF,C),我需要用一个9名选手填补一只公鸡,除了只有1个的位置外,每个位置都有2个。 假设每个职位有10名选手,我怎样才能生成所有可能排列的列表。 我想从excel中导入一个csv文件的名称,然后将所有的组合输出到另一个csv文件的Excel中。 我可以弄清楚如何导入和导出csv的东西,但我更感兴趣的最好的algorithm做上述排列。 如果生成排列更容易,那很好,而且我可以很容易地消除excel中的重复。 谢谢!
我search了很多,发现了很多关于排列的信息,但是我想不出一个适应它们的好方法。 令人沮丧的是,我不认为答案是那么难,但我似乎无法自己达成。 我试图将包含select标准的一系列单元格转换为高级filter可以读取的范围。 select标准的范围如下所示: 问题是,高级filter将每行评估为一个单独的filter集。 逻辑看起来像这样: [awake AND bob AND cat AND earth AND yes] OR [sleeping AND sally AND dog AND earth AND yes] OR … OR [martha]. 这是高级filter应该工作的方式,但是我需要它像自动filter一样工作,在那里我会遍历每个字段并检查每个filter标准。 逻辑应该是这样的: [awake OR sleeping] AND [bob OR sally OR george OR martha] AND [cat OR dog OR bird] AND [earth] AND [alive] 阅读文档和多个论坛后,唯一能做到这一点的方法就是在单独的行上生成每个可能的select标准组合。 新的select标准范围应该如下所示: 我已经通过手动设置select标准范围进行了testing,它工作正常,但我无法弄清楚代码自动化。 […]
你好,我从几年前发现了一些非常好的代码来创build多行的所有可能的组合。 它工作的很好,但是当你用更多的数据尝试时,它会返回运行时错误6溢出。 我对VBA很新,但是希望有一种方法可以分解或减慢进程,保持macros运行。 我目前的数据应该会产生442368个独特的行,这是很好的,但是在excel的能力范围之内。 我将粘贴下面的vba代码。 当你按照错误点击debugging时,它突出显示了这一行: int_TotalCombos = int_TotalCombos * int_ValueRowCount 我真的很感谢任何人可以提供帮助。 谢谢! Sub sub_CrossJoin() Dim rg_Selection As Range Dim rg_Col As Range Dim rg_Row As Range Dim rg_Cell As Range Dim rg_DestinationCol As Range Dim rg_DestinationCell As Range Dim int_PriorCombos As Integer Dim int_TotalCombos As Integer Dim int_ValueRowCount As Integer Dim int_ValueRepeats As Integer […]
以下是我的代码。 我想通过recursion方法达到相同的结果,因为嵌套循环的数量从2到最大8。 Sub permutation() c1 = Array(1, 2) c2 = Array(3, 4) c3 = Array(5, 6) c4 = Array(7, 8) c5 = Array(9, 10) c6 = Array(11, 12) c7 = Array(13, 14) c8 = Array(15, 16) With Sheets("Criteria") .Cells.Clear n = 1 For a = LBound(c1) To UBound(c1) For b = LBound(c2) To UBound(c2) For […]
如何在Excel中生成长度为5的数字{0,1,2,3,4,5,6,7,8,9}的所有可能组合。 我知道有10 ^ 5个重复的可能组合。 谢谢
我想这是我在这个论坛上的第一个问题,所以如果我错过了一些规则,不好意思。 我正在尝试编写一个VBAalgorithm来计算Shapley-Shubik索引。 这个指数需要计算一系列数字(代表议会,国会等的选票)的所有排列。 经过一番深入的研究,我明白了一个人必须使用recursionalgorithm来执行这样的事情。 我的想法是在VBA中创build一个matrix,其中每个元素分开存储,每行包含不同的排列。 这是我可以随后执行计算并检索计算此类索引所需的正确标签值的唯一方法。 问题是我无法理解如何恢复到以前的水平,一旦我达到recursion的最后一级。 (编辑)最终,我能够想出一个解决scheme。 我发布了下面的结果,因为我已经看到它已被要求。 我应该警告,这是一个非常低效的代码,它不能和超过7个玩家一起工作。 这是因为vba不能处理由这个代码创build的非常大的matrix,所以程序只是崩溃而出现溢出错误。 然而,在编写这段代码时,这并不是特别聪明,这意味着修改代码以使其能够为更多的玩家工作是非常容易的。 基本上,不是使用排列函数来创buildmatrix,而是需要计算每个特定排列中的关键球员,然后使用数组“存储”频率。 不幸的是,我没有时间修改代码,因为我目前正在其他项目上工作,虽然有些相关,使用Matlab代替。 这是我组装的function: Public Function ShapleyShubik( _ Votes As Range, _ Coalitions As Range, _ Candidate As String, _ Threshold As Double) As Double ' '—————————————————— ' by Sim1 ' This function computes the Shapley-Shubik Power Index ' For a specified coalition among […]
我搜遍了整个网站,试图寻找一个macros(或函数),将创build相邻列中给定列表的唯一组合。 所以基本上,我有: A 1 F1 R1 B 2 F2 C F3 DE 我试图列出所有的信息(在同一个工作表和不同的列): A 1 F1 R1 A 1 F2 R1 A 1 F3 R1 A 2 F1 R1 A 2 F2 R1 A 2 F3 R1 B 1 F1 R1 B 1 F2 R1 B 1 F3 R1 B 2 F1 R1 B 2 […]