我正在使用INDEX MATCH功能将气象站数据中约200个野外站点的季节性降雨量拉到一个摘要文件中。
每个气象站都有一个不同的excel文件。
不同的野外站点需要距离他们最近的气象站的数据。
我可以使用以下公式一次成功地完成一个气象站:
=INDEX('PATH\BB.xlsx'!rain,(MATCH($I$4&$I$5,PATH\BB.xlsx'!year&'PATH\BB.xlsx'!season,0)))
,其中
•PATH =文件位置(我可以输入它,因为它始终是相同的)
•BB.xlsx = Filename.xlsx
•降雨,年份和季节是气象站工作簿中的命名范围
•$ I $ 4 =包含年份查找值的单元格
•$ I $ 5 =包含季节查找值的单元格
但是,这意味着手动更改每个字段网站的公式中的文件名。
因此,我正在尝试编写一个公式,该公式会自动转到正确的气象站文件,以找到正确的降雨量值。
我发现了this帖子中的MOREFUNC加载项,然后我根据this发布了我的公式。
这是我的公式:
=INDEX(INDIRECT.EXT("'PATH["&$F8&"]seasonaldata'!"&$K$3),MATCH(1,(INDIRECT.EXT("'PATH["&$F8&"]seasonaldata'!"&$K$5)=I5)*(INDIRECT.EXT("'PATH["&$F8&"]seasonaldata'!"&$K$4)=I4),0))
,其中
•PATH =文件位置(我可以输入它,因为它始终是相同的)
•$ F8 = Filename.xlsx(这是我想要访问的工作簿的名称)
•seasonaldata =工作表名称
•$ K $ 3 =查询范围(实际上K3是一个包含“rain”字样的单元格,这是气象站文件中查找范围的名称)
•$ K $ 5 = - >包括某个季节(即单元格K5包含excel应该查找相关季节的范围的名称)
•$ K $ 4 = - >包括某一年(即单元格K4包含excel应该查找相关年份的范围的名称)
•I5 =包含其中一个查找值的单元格,这是一个名称(一个季节,即冬天)
•I4 =包含其他查找值的单元格,这是一个数字(一年,即2013年)
该公式一直有效,直到最后一部分,
'PATH["&$F8&"]seasonaldata'!"&$K$4)=I4
找到年份并正确识别我在单元格I4中指定的年份,但随后返回所有FALSE值,即它与我在单元格I4中指定的值与在“年份”中找到的值不匹配范围。
我做错了什么?
谢谢。
答案 0 :(得分:0)
我已经自己解决了 - 这是答案,以防将来对任何人都有用:
=INDEX(INDIRECT.EXT("'PATH ["&$F8&"]seasonaldata'!"&$K$3),(MATCH($I$4&$I$5,(INDIRECT.EXT("'PATH["&$F8&"]seasonaldata'!"&$K$4))&(INDIRECT.EXT("'PATH["&$F8&"]seasonaldata'!"&$K$5)),0)))