我正在检查一年内的网站统计数据。因为我希望整个工作簿根据所选月份而动态变化,所以我将几年的所有数据都放在一个工作表中。
使用索引/匹配组合,当年份被分成多个工作表时,我能够轻松做到这一点,但现在却做不到了。
以下是两种表达方式。
当前月份/年份=INDEX(DATA,MATCH(Data!A4,HEADERS,0),MATCH($B$3,MONTHS2013,0))
上月/上年=INDEX(DATA,MATCH(Data!A4,HEADERS,0),MATCH($F$3,MONTHS2012,0))
问题是,如果所有数据都在一个工作表上,两个公式总是默认使用第一个月份单元格。我尝试将单元格从 7 月重命名为 2012 年 7 月和 2013 年 7 月,但结果还是一样。
我甚至尝试进入并指定单元格范围而不是使用单元格范围名称。
有什么想法吗?
(我应该指定月份日期都在一行上,尽管每个月份都被赋予了唯一的名称。)
对不起。
数据——原始数据
数据!A4 - 独立访客
HEADERS - 数据行名称(即唯一访客)
MONTHS2013、MONTHS2012 都是月份范围,尽管它们位于同一行。
我将制作一份缩小的 2 个工作表副本并链接到它。
(添加 http:)//www.handyblues.org/images/WebReport.xlsx
无法发布超过两个链接,因此将其分开。
我真的非常非常想骂自己一开始没有尝试这个解决方案。我还将在其他一些页面上构建动态图表,所以真的需要这个解决方案才能发挥作用。感谢您指出月份问题,现在它可以按预期工作了。
答案1
问题出在您命名的范围上。
MONTHS2013
来自 N2:Z2 而您的DATA
来自 B2:Z80
当您使用匹配作为列号(在索引函数中)时,您将从8
匹配中获取值,因为它从 N 列开始并与 U 列匹配。选择第 8 列,DATA
您将获得要获取的值。
我建议为月份保留一个命名范围,从 B2 开始到 Z2 结束。您可能还必须检查所有命名范围,以防有更多需要更正的地方。
否则,您可以使用HLOOKUP
以下语法:
=HLOOKUP(B$3, Data!$2:$80, ROW()-2, FALSE)
然后向下(或向右)拖动到您需要的位置。我注意到您HEADERS
在两个工作表中使用的是相同的,因此您可以使用它ROW()-2
来匹配所需的列数。