我有一张按州,年份和统计类型(有4种统计类型)分类的劳动力统计表(“州劳动力”)。请参见下面的屏幕截图:
然后,我有了第二张表,允许用户输入这3个搜索参数中的每个参数,并使其返回值(例如,从上面的屏幕截图中,阿拉巴马州的2000年劳动力等于2133233)。但是,由于某种原因,索引匹配始终返回0。
=INDEX('State Labor Force'!$D:$D,
MATCH($H$79&$G80&$B$78,
'State Labor Force'!$A:$A&'State Labor Force'!$B:$B&'State Labor Force'!$C:$C,0))
(其中H79
=状态输入,G80
=年输入,B78
=统计输入;所有3个都与列表验证相关,并且没有拼写错误)。
有人知道为什么这个公式不起作用吗?
答案 0 :(得分:2)
您的公式应如下所示(Ctrl + Shift + Enter,使其成为数组公式):
{=INDEX('State Labor Force'!$D:$D,
MATCH(1,($H$79='State Labor Force'!$A:$A)*($G80='State Labor Force'!$B:$B)*($B$78='State Labor Force'!$C:$C),0))}
具有多个条件的索引+匹配公式的概念如下:
{=INDEX(Result Range,MATCH(1,(A1=range1)*(B2=range2)*(C3=range3),0))}
位置:
Result Range
=您要返回最终结果的范围
Range1
=条件1的范围,您可以在A1中定义条件1
Range2
=条件2的范围,您可以在B2中定义条件2
Range3
=条件3的范围,您可以在C3中定义条件3
0
=要返回的完全匹配
答案 1 :(得分:1)
FALSE
(或等效的{{1} })0
的 match_type 参数因此:
MATCH
但是,通过引用这种构造中的整个列,您将强制Excel为单个公式计算惊人数量的单元格(超过300万个)。
最好是在工作表的另一列中执行级联,之后可以使用非数组=INDEX('State Labor Force'!$D:$D,MATCH($H$79&$G80&$B$78,'State Labor Force'!$A:$A&'State Labor Force'!$B:$B&'State Labor Force'!$C:$C,0))
/ INDEX
构造,这将大大加快计算速度。例如,为此目的使用州劳动力标签的E列,我们将在MATCH
中输入:
E2
之后,您可以简单地使用:
=A2&B2&C2
致谢
**输入数组公式的方式与使用“标准”公式的方式不同。首先按住CTRL和SHIFT,然后再按Enter,而不是仅按ENTER。如果操作正确,您会注意到Excel在公式周围放置了大括号{}(尽管不要尝试自己手动插入大括号)。