我需要一些帮助。我有一个包含 3 列的电子表格,其中包含许多小项目的日期:
A 列:开始日期 B 栏:中途日期 C 栏:结束日期
每天都会添加新日期,具体取决于项目的状态更新。出于显而易见的原因,A 列的日期最多,而 C 列的日期最少。
我想要显示的是最近 10 个已结束项目的阶段之间的平均时间。使用 LARGE 函数在辅助列中列出 C 列中的 10 个最近结束日期很容易失败。然而,我并不总能在 A 列和 B 列中找到正确的匹配日期(同一行)。问题是多个项目通常在同一日期结束,因此当我列出前 10 个结束日期时,总会有一些相同的值。由于我对函数 XLOOKUP 或 INDEX 的了解有限,它总是返回第一个匹配的值,即使某些相同的结束日期具有不同的开始日期和中途日期。
我的猜测是我应该使用另一个函数(我在网上看到了一些 AGGREGATE 示例)来忽略之前在前 10 名中返回的行,但我可以弄清楚。
有人吗?
附注不重要??:有时B和C范围之间存在差距:开始的项目并不总是按顺序完成。我认为这并不重要,因为 C 列中的值始终在 A 列和 B 列中具有匹配的值。
A 栏 | B 栏 | C 栏 |
---|---|---|
2012 年 1 月 | 2 月-17 日 | 12 年 3 月 |
2013 年 1 月 | 2 月-19 日 | 14 年 3 月 |
1 月 15 日 | 2 月 21 日 | |
2015 年 1 月 | 2 月-24 日 | 14 年 3 月 |
1 月 17 日 | 2 月-24 日 | 2011 年 3 月 |
1 月 19 日 | ||
1 月 19 日 | 3月3日 | |
1 月 23 日 | ||
等等... | 等等... | 等等... |
我尝试了 XLOOKUP 和 INDEX 以及嵌套的 LARGE 函数,菜鸟的东西。它返回每个相同输入的第一个匹配项,它不会忽略以前返回的值(行)。
我尝试了在网上找到的 idex-aggregate 示例:
=index('a:a, aggregate(15, 6, row($2:$999)/(C:C=LARGE(C:C,1), row(1:1)))
向下拖动10行,返回错误。
我很乐意创建另一个具有唯一ID(1,2,3,4...)的辅助列,但它每次都会找到它匹配的第一个ID。
问题在于您的行的相对引用。 如果您想在向下拖动时忽略上一行,则需要使用
$C2:$C$100
。
以下是修正公式的方法:
=INDEX($A$1:$A$100,AGGREGATE(15,6,ROW($C2:$C$100)/($C2:$C$100=LARGE($C2:$C$100,1)),1),1)
向下拖动10行,你会看到这个:
公式细分:
=LARGE($C2:$C$100,1)
.
=AGGREGATE(15,6,ROW($C2:$C$100)/($C2:$C$100=LARGE(C2:$C$100,1)),1)
INDEX
获取A列中匹配的行:=INDEX($A$1:$A$100,AGGREGATE(15,6,ROW($C2:$C$100)/($C2:$C$100=LARGE($C2:$C$100,1)),1),1)