有两件事需要帮助。
Excel工作表图片:

数字1:
另一个代码将将第7行中的“到期金额”和“未支付款项”的最高值粘贴到B1和B2中。从这一点出发,我需要两个代码,一个分别代表“应付金额”和“未支付款项”,以检查第6行中是否有来自B1和B2的值的任何重复。如果存在,则文本“数个相同金额的日期”应该显示在F1和F2中。如果没有,那么第4行的对应日期应该显示在F1和F2中。
但在第5行中,也有一些例外情况。这两个代码的工作原理应该相同,但应使用“应付金额”或“未支付款项”作为依据。为了简化场景,我使用了“到期金额”的代码作为示例:
与我链接的图片相关的示例:
数字2:
如您所见,每一对“应付金额”和“未支付款项”列都链接到一个日期(即“未支付到期”列始终属于其左边的日期)。在上面描述的第二个场景中,是否有可能“到期未付”代码获取位于其左侧的日期,高于“货款”列。因此,在图中,F2中的输出应该是30.12.16,因为代码在第7行的“到期未支付”中找到了最高值,该值位于F列中,而且由于库仑E中的重复是“到期金额”,所以输出应该是一个日期。
我现在的代码是:
Sub test()
Dim Range1 As Range
Set Range1 = ActiveSheet.Range("A6:F6")
For Each cell In Range1
If WorksheetFunction.CountIf(Range1, Range("B1").Value) > 1 Then
ActiveSheet.Range("F1").Value = "Several dates with the same amount"
Else
ActiveSheet.Range("F1").FormulaArray = "=INDEX(A3:F3,MATCH(B1,A6:F6,0))"
End If
Next
End Sub 希望这可以理解。
杰夫
发布于 2017-06-29 11:58:51
我怀疑你的问题过于简单,相对于你想要的,但是下面的两个公式会返回你在图片中显示的内容。假设您有更多的数据行,则需要根据实际情况对它们进行调整:
F1: =IF(COUNTIFS($A$5:$F$5,"Amount Due",$A$7:$F$7,B1)>1,"Several dates with the same amount",SUMPRODUCT((A7:F7=B1)*(A5:F5="Amount Due")*A4:F4))
F2: =IF(COUNTIFS($A$5:$F$5,"Due not paid",$A$7:$F$7,B2)>1,"Several dates with the same amount",SUMPRODUCT((B7:F7=B2)*(B5:F5="Due not paid")*A4:E4))请注意,关于F2中的公式,为了处理适用日期的偏移量,我们“将”水平数组“缩短”一个,并将其相对于日期向右偏移。
https://stackoverflow.com/questions/44823480
复制相似问题