Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
交叉帖子:略高于寻找独特的组合:Python/VBA(w/bonus math q!)_Python_Excel_Combinations_Vba - Fatal编程技术网

交叉帖子:略高于寻找独特的组合:Python/VBA(w/bonus math q!)

交叉帖子:略高于寻找独特的组合:Python/VBA(w/bonus math q!),python,excel,combinations,vba,Python,Excel,Combinations,Vba,这是另一个论坛的一篇文章。这样做的原因是有一个S/O post非常接近我需要做的事情: 交叉帖子展示了我需要的示例,但希望这里有人能够理解python示例中从S/O显示的逻辑,但知道如何在Excel中应用它 它的要点是取('a,b,c,d')并找到所有的唯一对: a、 b a、 c a、 d b、 c b、 d c、 d b、 a不应该在列表中,因为a、b已经在那里等 有很多很好的python代码用于此,但是vba示例对于我所需要的非常有用 我正在使用Windows、Excel 2010,最终希

这是另一个论坛的一篇文章。这样做的原因是有一个S/O post非常接近我需要做的事情:

交叉帖子展示了我需要的示例,但希望这里有人能够理解python示例中从S/O显示的逻辑,但知道如何在Excel中应用它

它的要点是取('a,b,c,d')并找到所有的唯一对:

a、 b a、 c a、 d b、 c b、 d c、 d

b、 a不应该在列表中,因为a、b已经在那里等

有很多很好的python代码用于此,但是vba示例对于我所需要的非常有用

我正在使用Windows、Excel 2010,最终希望能够运行包含大量列的宏


额外数学问题: 我认为答案就在组合/置换公式的某个地方,但显然我在这个网站上提问是有原因的:

如果我创建一个包含10列的新工作表,并将每列与另一列配对(仅一次),我将得到多少张工作表

是吗 N!/R(右)

十!/2.(8!)


45?

因为顺序无关紧要,所以组合是您想要的


如果您想在Excel中应用它,我建议使用VB宏。

数学:是的,这些是组合,是的,
n/(r!*(n-r)!
就是答案

VBA:请注意,如果组合中的每个元素始终大于上一个元素,则可以获得所有组合

返回这些组合的简单VBA函数:

Function CombinationsOf2(Elements) As Variant()
     Dim i0 as Long, i1 as Long, ret(), cnt As Long
     For i0 = LBound(Elements) To UBound(Elements)-1
         For i1 = i0+1 To UBound(Elements)-1
             cnt=cnt+1
             ReDim Preserve ret(1 to cnt)
             ret(cnt)=Array(Elements(i0), Elements(i1))
          Next
      Next
      CombinationsOf2=ret
End If
例如:

'Checking uniqueness of elements if up to you
combs=CombinationsOf2(Array("a", "b", "c", "d"))
'Combs is an array of all combinations. Each combination is an array of elements.

是的,VBA宏是我想要的。我不知道怎么写。