我在编写和索引匹配公式时遇到了3条错误。我有一些类似于绿色桌子的东西,想写一个公式来获得灰色表格。索引匹配3条件
在绿表中,每个“事件”都有一个开始和结束时间。所以在灰色时间系列中,时间必须在这些开始和结束时间之间。
我在编写和索引匹配公式时遇到了3条错误。我有一些类似于绿色桌子的东西,想写一个公式来获得灰色表格。索引匹配3条件
在绿表中,每个“事件”都有一个开始和结束时间。所以在灰色时间系列中,时间必须在这些开始和结束时间之间。
尝试在G4这个标准公式,
=IFERROR(INDEX($C:$C, AGGREGATE(15, 6, ROW($1:$7)/
(($A$1:$A$7<$F4)*($B$1:$B$7>$F4)*($D$1:$D$7=G$3)), 1)), "")
填写向右和向下。
这与Two column lookup in table array using INDEX and MATCH实质上没有什么不同。
这表明'AGGERATE'是**不是**避免数组公式的解决方案。因为'= IFERROR(INDEX($ C:$ C,AGGREGATE(15,6,ROW($ 1:$ 1048576)/(($ A:$ A <$F4)*($B:$B> $ F4)*($ D:$ D = G $ 3)), 1)),“”)'与数组公式一样耗时。 –
Axel,AGGREGATE的处理方式与SUMPRODUCT相同;它不会像使用SUMIFS那样截断使用的范围,等等。我从来没有说过它,并且在这个解决方案中将处理范围降低到7行。如果事实上,嵌套的基于IF的数组公式会稍微快一些,因为如果第一个或第二个IF条件根本不处理,则第一个或第二个失败。 – Jeeped
是的,我正在处理大量数据,所以速度是一个问题。可能尝试嵌套如果建议。 – Sammy
我想我会用VBA作为@Jeeped建议。 但现在我尝试了嵌套,如果像这样在G4:
=IFERROR(INDEX($C$2:$C$7,MATCH(G$3,IF($F4>$A$2:$A$7,IF($F4<$B$2:$B$7,$D$2:$D$7,0),0),0)),"")
不知道什么是速度更好。
为什么不是1×1蓝色? – Jeeped
对于这个例子,时间(灰色)必须是“> StartTime”。 (not> =) – Sammy
请参阅[为什么不显示代码和示例数据图像](http://tinyurl.com/kdxb7le)。 – Jeeped