找出总和为特定值的列中的每个单元格组合

如果在Excel中给出了一列数据,例如:

2 5 8 10 3 6 

是否可以检查列以find符合特定条件的所有组合? 在这个例子中,当这些值的任意组合的总和等于8时。

它应该find的价值是

 2 5 8 3 6 

由于2 + 6,5 + 3,8均等于8

这是我的理解,我基本上要求检查以下

 if 2 = 8 or if 5 = 8 or if 8 = 8 or if 10 = 8 or if 3 = 8 or if 6 = 8 or if 2+5 = 8 or if 2+8 = 8 or if 2+10 = 8 or if 2+3 = 8 or if 2+6 = 8 or etc 

我只用了简单的数字来尝试举个例子。 我相当肯定这是不可能的。

尝试下面的代码。 您必须input值才能在列A中匹配,结果将显示在列B中。我能够实现双向匹配和三向匹配。 如果你可以做到5路匹配之后会变得更加复杂。

 Sub Testing() Dim RowNumber As Double Dim Temp1 As Double Dim Temp2 As Double Dim Temp3 As Double Dim Result As Double Dim MatchCount As Double 'Value to be searched Result = Application.InputBox("Please insert a Number", "Combi Calculator", "", , , , , 1) 'get the last row RowNumber = Sheet1.Range("A1048576").End(xlUp).Row 'set matchcount to MatchCount = 1 'Two way match For Temp1 = 2 To RowNumber For Temp2 = 3 To RowNumber If Cells(Temp1, 2) = "" And Cells(Temp2, 2) = "" Then If Cells(Temp1, 1) + Cells(Temp2, 1) = Result Then Cells(Temp1, 2) = MatchCount Cells(Temp2, 2) = MatchCount MatchCount = MatchCount + 1 End If End If Next Next 'Three way match For Temp1 = 2 To RowNumber For Temp2 = 3 To RowNumber For Temp3 = 4 To RowNumber If Cells(Temp1, 2) = "" And Cells(Temp2, 2) = "" And Cells(Temp3, 2) = "" And Temp1 <> Temp2 And Temp2 <> Temp3 And Temp1 <> Temp3 Then If Cells(Temp1, 1) + Cells(Temp2, 1) + Cells(Temp3, 1) = Result Then Cells(Temp1, 2) = MatchCount Cells(Temp2, 2) = MatchCount Cells(Temp3, 2) = MatchCount MatchCount = MatchCount + 1 End If End If Next Next Next End Sub 

我不确定如何发送excel文件作为附件,因为我是这个页面的新手。

同时让我多研究一下时间话题。 这一直是我想要工作的领域(即逻辑)。

使用COUNTIF双向匹配非常简单。 如果您的号码范围在列A中,并且您想在范围内find总计为72的两个数字,请在B1中input此公式并将其复制到B20:

 =COUNTIF($A$1:$A$20,72-A1)