我遇到了Excel问题,我希望有人可以提供帮助。我阅读了10-15个类似的主题,但我无法获得任何工作。这是我在哪里......
我有一个大型数据集,其中包含Year
,Name
,Total 1
,Total 2
(以及其他20多个列)的列。根据年度总计,相同的名称显示在多行中。在另一张纸上,我有另一个包含Name的数据集,并希望将第一张数据拉入列,如下所示。
我过去只使用一年作为初始数据集,使用以下公式完成此操作:
=INDEX(DATARANGE,MATCH([@Name],DATARANGE[Name],0),MATCH("Total 1",DATARANGE[#Headers],0))
我遇到的问题是将多年数据添加到第一个数据集的结果。有没有办法根据name
和year
匹配行,然后返回相应列的结果?
答案 0 :(得分:2)
=SUM(($A$2:$A$9=B$16)*($B$2:$B$9=$A17)*($C$2:$C$9))
在单元格B14中输入上面的数组公式或以下作为标准
=SUMPRODUCT(($A$2:$A$9=B$16)*($B$2:$B$9=$A17)*($C$2:$C$9))
你可以对总数2做同样的事情,只需用Ds替换Cs
然后向右和向下拖动。
答案 1 :(得分:1)
将第一个MATCH函数更改为:
=MATCH(1,INDEX(([@Name]=DATARANGE[Name])*([@Year]=DATARANGE[Year]),0),0)
所以作为整个公式的一部分就是这个
=INDEX(DATARANGE,MATCH(1,INDEX(([@Name]=DATARANGE[Name])*([@Year]=DATARANGE[Year]),0),0)
,MATCH("Total 1",DATARANGE[#Headers],0))
另一种只能用于返回数字的方法(如此处所示)是这样的:(为了简单起见,使用单元格引用)。
=SUMPRODUCT((A2:A9=2013)*(B2:B9="name x")*(C1:D1="Total 1"),C2:D9)
答案 2 :(得分:0)
如果要编制索引的数据是表格,那么
此
=MATCH(1,INDEX(([@Name]=DATARANGE[Name])*([@Year]=DATARANGE[Year]),0),0)
应该更正为
的正确结构参考@[Name]
此外,由于这是一个数组公式,它可能根本不适用于结构化引用。通过常规细胞参考你会得到更好的服务。此外,如果它不是一个表,那么单元格引用也会起作用。