Excel-如何查找4列的所有可能组合-(无VBA)

时间:2019-05-21 02:36:47

标签: excel excel-formula

我在下面有一个简单的4列表:

  Column A      Column B        Column C      Column D
  HEAD          BODY            PARAGRAPH     IMAGE
  Headline 1    Body Text 1     Paragraph 1   Image 1
  Headline 2    Body Text 2     Paragraph 2   Image 2
  Headline 3    Body Text 3     Paragraph 3   Image 3

我想要拥有的那些列中的所有组合,我可以举例说明:

  Column F      Column G        Column H      Column I
  HEAD          BODY            PARAGRAPH     IMAGE
  Headline 1    Body Text 1     Paragraph 1   Image 1
  Headline 1    Body Text 1     Paragraph 1   Image 2
  Headline 1    Body Text 1     Paragraph 1   Image 3
  Headline 2    Body Text 2     Paragraph 2   Image 1
  Headline 2    Body Text 2     Paragraph 2   Image 2
  Headline 2    Body Text 2     Paragraph 2   Image 3
  Headline 3    Body Text 3     Paragraph 3   Image 1
  Headline 3    Body Text 3     Paragraph 3   Image 2
  Headline 3    Body Text 3     Paragraph 3   Image 3
  etc.

基本上我希望得到与-Excel – Multiple Columns, Different Combinations相同的答案,但仅适用于4列,而不是3列,也请不要使用VBA。

1 个答案:

答案 0 :(得分:1)

如果我们将所有内容都视为4位数字,这是可能的,在给出的示例中,因为每列中有3个选项,所以我们希望以3为基数。我正在写3,但是应该清楚如何扩展它。在下面的内容中,我将说明如何在每一列中处理不同数量的选项。 假设您的数据出现在A1:D4中。我选择将E列留空,以便我轻松阅读内容。 F1得到以下公式:

=mid(base(row()-1,3,4),1,1)

将行号-1(此处为1-1 = 0,此处)构造为4位以3为基数的数字,并采用第一位数字。 G1有第二位数字:=mid(base(row()-1,3,4),2,1) H1有=mid(base(row()-1,3,4),3,1) 并且I1有=mid(base(row()-1,3,4),4,1)

然后选择F1:I1并向下拖动到第81行(它将具有2 2 2 2)。 J1得到=index(A$2:A$4,1+F1),它被直接拖入M1。 然后将J1:M1向下拖动到第81行,就可以了。

[稍后您可以隐藏作为工作列的列,或将其公式构建为更难以理解的列。]

现在假设您希望能够处理每个类别中选项数量不同的情况。假设n是最大数量的选项。我将为n = 3进行说明,但它应该再次推广。

假设可能性位于J:M列中,在N1中,我放置了=if(counta(J1:M1)=4,join(",",J1:M1),""),并一直向下拖动以使每个类别中都有一个事物的所有事物都存在,但幻象条目完全存在空白。在O1中,我将=sort(N1:N,1,false)的空格发送到底部,然后将行放到空格,直到空格为止,在P1中并将其拖到下方的位置=split(O1,",")

这里有一些可能的概括,当我使用数字时,您可以使用列中的条目计数,但是我认为这应该会使您受益匪浅。这种方法还存在一个局限,即您最多只能选择36个。