我在Excel中需要帮助找到基于以下四个条件语句的金额找到正确输出:
并将其他行留空。 正确输出列是预期输出。
以下是样本数据:
╔════╦═════════════════════════════╦═════════╦════════════════╦══╦═════════════╦════════════╦═════════╗
║ ID ║ Timestamp (yyyy-mm-dd H:mm) ║ Amount ║ Correct Output ║ ║ Date Format ║ Max Date ║ Test ║
╠════╬═════════════════════════════╬═════════╬════════════════╬══╬═════════════╬════════════╬═════════╣
║ A ║ 2013-04-15 20:42 ║ NULL ║ NULL ║ ║ 2013-04-15 ║ 2013-04-15 ║ NULL ║
║ A ║ 2013-05-23 23:09 ║ 300000 ║ 300000 ║ ║ 2013-05-23 ║ 2013-05-23 ║ 300000 ║
║ A ║ 2013-09-15 23:36 ║ 300000 ║ 300000 ║ ║ 2013-09-15 ║ 2013-09-15 ║ 300000 ║
║ A ║ 2013-12-19 5:58 ║ 300000 ║ ║ ║ 2013-12-19 ║ 2013-12-19 ║ 0 ║
║ A ║ 2013-12-19 6:18 ║ 0 ║ ║ ║ 2013-12-19 ║ 2013-12-19 ║ 0 ║
║ A ║ 2013-12-19 6:18 ║ 0 ║ 0 ║ ║ 2013-12-19 ║ 2013-12-19 ║ 0 ║
║ B ║ 2013-05-23 23:00 ║ NULL ║ ║ ║ 2013-05-23 ║ 2013-05-23 ║ 0 ║
║ B ║ 2013-05-23 23:04 ║ 0 ║ 0 ║ ║ 2013-05-23 ║ 2013-05-23 ║ 0 ║
║ B ║ 2013-05-30 3:48 ║ 2339000 ║ ║ ║ 2013-05-30 ║ 2013-05-30 ║ 1169500 ║
║ B ║ 2013-05-30 3:54 ║ 1169500 ║ 1169500 ║ ║ 2013-05-30 ║ 2013-05-30 ║ 1169500 ║
║ B ║ 2013-06-02 11:46 ║ 2339000 ║ ║ ║ 2013-06-02 ║ 2013-06-02 ║ 2339000 ║
║ B ║ 2013-06-27 8:40 ║ 2339000 ║ ║ ║ 2013-06-27 ║ 2013-06-27 ║ 2339000 ║
║ B ║ 2013-06-27 13:59 ║ 2339000 ║ ║ ║ 2013-06-27 ║ 2013-06-27 ║ 2339000 ║
║ B ║ 2013-06-27 13:59 ║ 2339000 ║ 2339000 ║ ║ 2013-06-27 ║ 2013-06-27 ║ 2339000 ║
║ C ║ 2015-02-09 12:43 ║ NULL ║ ║ ║ 2015-02-09 ║ 2015-02-09 ║ NULL ║
║ C ║ 2015-02-09 12:43 ║ NULL ║ NULL ║ ║ 2015-02-09 ║ 2015-02-09 ║ NULL ║
║ D ║ 2013-12-02 0:05 ║ NULL ║ ║ ║ 2013-12-02 ║ 2013-12-02 ║ 37000 ║
║ D ║ 2013-12-02 0:37 ║ 37000 ║ 37000 ║ ║ 2013-12-02 ║ 2013-12-02 ║ 37000 ║
║ D ║ 2014-07-16 7:36 ║ 0 ║ ║ ║ 2014-07-16 ║ 2014-07-16 ║ 0 ║
║ D ║ 2014-07-16 7:36 ║ 0 ║ 0 ║ ║ 2014-07-16 ║ 2014-07-16 ║ 0 ║
║ E ║ 2013-06-27 8:35 ║ NULL ║ NULL ║ ║ 2013-06-27 ║ 2013-06-27 ║ NULL ║
╚════╩═════════════════════════════╩═════════╩════════════════╩══╩═════════════╩════════════╩═════════╝
参考文献:
以下是我尝试的步骤:
date
=MAX(IF($F$2:$F$22=F2,IF($A$2:$A$22=A2,$B$2:$B$22)))
(数组中) =INDEX(C2:C22,MATCH(G2,B2:B22,0))
(数组中) 答案 0 :(得分:0)
假设第一个“正确输出”的单元格D2:
=IF(SUMPRODUCT(0+(MONTH(G$2:G$22)=MONTH(G2)),0+(A$2:A$22=A2))=SUMPRODUCT(0+(MONTH(G$2:G2)=MONTH(G2)),0+(A$2:A2=A2)),LOOKUP(1,0/((MONTH(G$2:G$22)=MONTH(G2))*(A$2:A$22=A2)),C$2:C$22),"")
根据需要复制。
请注意,您可以修改被引用的上排(此处为22)以满足您的要求,但是您应该注意不要使其过于任意大(并且当然不要引用整个列!),因为,对于每个引用额外的单元格,将需要额外的计算。
这适用于这些额外的细胞是否在技术上超出了这些范围内最后使用的细胞。有一些功能,例如COUNTIF(S)/ SUMIF(S),您可以在不损害性能的情况下引用整个列,但不能使用在数组上运行的函数,例如AGGREGATE,SUMPRODUCT和任何需要CSE的构造。
更好的是,让您的范围变得动态,以便在数据扩展/收缩时自动调整。
此致