3

我被困在 Excel 问题上,希望有人能提供帮助。我阅读了 10 到 15 个类似的主题,但我无法得到任何工作。这就是我所在的地方...

我有一个大型数据集,其中包含YearNameTotal 1Total 2(以及 20 多个其他列)的列。根据年度总数,相同的名称出现在多行中。在另一张纸上,我有另一个包含名称的数据集,我想将第一张纸中的数据拉到列中,如下所示。

在此处输入图像描述

过去我使用以下公式仅使用一年作为初始数据集来完成此操作:

=INDEX(DATARANGE,MATCH([@Name],DATARANGE[Name],0),MATCH("Total 1",DATARANGE[#Headers],0))

我遇到的问题是向我的第一个数据集添加多年数据的结果。有没有办法根据相应列匹配行nameyear然后返回相应列的结果?

4

3 回答 3

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 个执行相同操作,只需将 Cs 替换为 Ds

然后向右和向下拖动。

于 2014-08-15T21:04:54.317 回答
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)

于 2014-01-22T16:54:07.733 回答
0

如果要索引的呈现数据是一个表,那么

这个

=MATCH(1,INDEX(([@Name]=DATARANGE[Name])*([@Year]=DATARANGE[Year]),0),0)

应更正为适当的结构化参考

@[Name]

此外,由于这是一个数组公式,它可能根本不适用于结构化引用。使用常规单元格引用会更好地为您服务。此外,如果它不是表格,则只有单元格引用才会起作用。

于 2017-04-21T05:53:44.223 回答