Excel - 当第三个值为真时,创建一个包含其最大日期的唯一值列表

Excel - 当第三个值为真时,创建一个包含其最大日期的唯一值列表

2013 年工作。我希望仅使用公式即可实现此目标。我从以下方面开始:

Part     Date          Bool
1        2/14/2020     1
1        10/22/2019    0
1        7/27/2020     1
2        8/26/2020     1
2        9/10/2020     0
2        10/06/2020    1
3        10/23/2020    0

我想以此作为结束:

Part     Date
1        7/27/2020
2        10/06/2020

我知道我的语句在 SSMS 查询中会是什么样子:

SELECT Part, Max(Date)
FROM Table
WHERE Bool = 1
GROUP BY Part

目前,我正在使用一个非常丑陋的设置,我首先创建一个列(“仅限后期部分”),该列有一个公式来隔离与至少 1 个正布尔值相关的部分:

=IF(TableX@[Bool] = 1, TableX@[Part], "")

接下来我尝试使用数组索引从该列表中提取唯一的部分:

{=INDEX{TableX@[Late Parts Only], MATCH(0, COUNTIF($U$2:U2, TableX@[Late Parts Only]), 0))}

^^其中“$U$2:U2”是公式所在列的标题。我使用此页面作为参考

这会生成一个可用列表(“唯一零件列表”)。但是,提取最大日期是我遇到的问题:

=MAX(IF(TableX@[Unique Part List] = TableX@[Part], TableX@[Date]))

但这会导致很多“1/0/1900”日期,因为行没有完全对齐。

我目前的观点

答案1

假设数据占据 A 至 C 列,在 E2 中输入:

=A2

然后在 F2 中:

=B2

然后

在 E3 中:

=IF($C3=0,IF($A2=$A3,E2,IF($C3=0,"",A3)),A3)

在 F3 中:

=IF($C3=0,IF($A2=$A3,F2,IF($C3=0,"",B3)),B3)

在 G3 中:

=IF($A4<>$A3,E3,"")

在 H3 中:

=IF($A4<>$A3,F3,"")

选择 E3:I3 并向下拖动。结果应在 H&I 列中。

如果有效/无效,请分享。

相关内容