【问题标题】:Max Conditional Statements in Excel with duplicate max valuesExcel 中具有重复最大值的最大条件语句
【发布时间】:2015-10-11 07:20:49
【问题描述】:

我需要 Excel 中的帮助,以根据以下四个条件语句的 Amount 找到 正确的输出

  1. 时间戳的最大值;
  2. 如果有重复的最大日期,请使用相同时间戳的最后一行,因为数据不会延长到秒;
  3. 每个月的时间戳
  4. 每 (4) 个唯一的ID

并将其他行留空。 正确输出列是预期输出。

这是示例数据:

╔════╦═════════════════════════════╦═════════╦════════════════╦══╦═════════════╦════════════╦═════════╗
║ 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    ║
╚════╩═════════════════════════════╩═════════╩════════════════╩══╩═════════════╩════════════╩═════════╝

参考资料:

  • A 列 - ID
  • B 列 - 时间戳
  • F 列 - 日期格式
  • G 列 - 最大日期
  • H 列 - 测试

以下是我尝试的步骤:

  1. 我使用date 创建了日期格式
  2. 使用=MAX(IF($F$2:$F$22=F2,IF($A$2:$A$22=A2,$B$2:$B$22))) 创建最大日期(在数组中)
  3. 使用=INDEX(C2:C22,MATCH(G2,B2:B22,0)) 创建测试(在数组中)

【问题讨论】:

  • 到目前为止您尝试过什么?它在哪里失败,它的运作方式与预期有何不同?
  • 还以易于使用的格式提供您的数据,请参阅:stackoverflow.com/questions/5963269/… 并向我们展示您的预期结果。
  • Hello mts,输出是最终值列
  • 等级 Eh Bacon,在 excel 中,我创建了单独的列以将日期格式设置为 YYYY-MM-DD。然后,在另一列中,这是我的公式: =MAX(IF($F$2:$F$22=F2,IF($A$2:$A$22=A2,$C$2:$C$22))) 列 F - YYYY-MM-DD 列 A 的新日期格式 - ID 列 C - 金额 所以,我坚持使用重复的时间戳。
  • @FoxyReign 这对我来说不是很清楚你在做什么。请通过编辑重新编写您的问题以包含所有信息,包括您尝试过的内容以及尝试的结果(问题出现在哪里,以及这些问题是什么)?

标签: excel conditional-statements


【解决方案1】:

假设第一个“正确输出”的单元格 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 的构造。

更好的是,使您的范围动态化,以便它们随着您的数据扩展/收缩而自动调整。

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2014-08-08
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    相关资源
    最近更新 更多