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 列中。
如果有效/无效,请分享。