背景
美国政府发布我用于工作的每日报告。最近,政府改变了他们发布报告的方式。他们现在不再以文本文件形式发布报告,而是以pdf形式发布报告。不幸的是,这影响了我从报告中提取信息的方式。以前,我从网站上提取了信息,因为它被保存为文本文件。现在,我下载pdf并将其转换为excel文件。
我有1个工作簿,其中包含报告保存在各个工作表上的副本,例如4月30日,4月29日,4月28日等。不幸的是,由于进行了转换,每页上的信息可能会连续变化一两行,例如, 4月30日的工作表可能位于第30行,4月29日的工作表可能位于第33行。
在工作簿的第一页上,我有一个摘要页面,该页面从上一页中提取关键信息,例如,摘要将从4月30日的工作表中提取信息。
问题
现在的问题来自我如何从excel文件中提取信息。由于信息不在同一行,因此我认为最好使用Index / Match方法。我做的公式如下。参考名称Information_A在A列中,而我需要Information_A的值在P列中。
=(INDEX('April 30'!P:P,MATCH("Information_A",'April 30'!A:A,0)))
由于我的工作表不断变化,因此我认为我可以提取最后一个工作表名称,然后将其输入公式中,
=(INDEX('[previous_sheet]'P:P,MATCH("Information_A",'[previous_sheet]'!A:A,0)))
因此,我试图弄清楚如何提取先前的工作表名称。我尝试了几种不同的方法,最终在这里使用ChrisB的解决方案。
我将他提供的公式(如下)保存为PrevSheet_2
=IF( MATCH(wsName,wsNamesArray,0)-1 =0, ERROR.TYPE(7), INDEX(wsNamesArray,MATCH(wsName,wsNamesArray,0)+1))
其中,wsNamesArray和wsName如下,
wsNamesArray: =RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1))) & T(NOW())
wsName: =MID(CELL("filename", INDIRECT("A1")),FIND("]",CELL("filename",INDIRECT("A1")))+1,255) & T(NOW())
得出了“最终”公式,
=(INDEX("'"&PrevSheet_2&"'!P:P",MATCH(Information_A","'"&PrevSheet_2&"'!A:A",0)))
这不起作用。这个公式给了我#VALUE!错误。
我在不使用PrevSheet_2的情况下测试了该公式,并输入了工作表名称(例如4月30日),并获得了正确的值,因此我知道该部件正在工作。我还在单元格中测试了PrevSheet_2,并且也获得了正确的前一张纸,所以我知道问题出在2的组合上。
那么,我的问题是如何做到这一点
=(INDEX("'"&PrevSheet_2&"'!P:P",MATCH(Information_A","'"&PrevSheet_2&"'!A:A",0)))
公式工作。
我感觉PrevSheet_2的数据类型错误,但是我不知道如何解决它。
编辑:
我也尝试过使用INDIRECT(如下)并获得了#REF!错误。
=INDEX(INDIRECT("''"&PrevSheet_2 &"'!P:P"),MATCH("Information_A",INDIRECT("'"&PrevSheet_2&"'!A:A"),0))
引用此链接 ..将SheetNames数组(在“公式”>“定义名称”中)定义为SheetNames = MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1),1)+1,LEN(GET.WORKBOOK(1)))
.。然后在excel公式中,您可以将上一个图纸名称命名为INDEX(SheetNames,SHEET()-1)
您也可以定义 PreviousSheetName = INDEX(MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1),1)+1,LEN(GET.WORKBOOK(1))),SHEET()-1)
您可以按照@BigBen的建议将其放在INDIRECT函数中
所以公式将是 =INDEX(INDIRECT("'"&PreviousSheetName &"'!P:P"),MATCH("Information_A",INDIRECT("'"&PreviousSheetName&"'!A:A"),0))
参见.. Sheet
函数给出了当前工作表的索引。所以Sheet()-1
给我们上一张纸的索引
在我回答之后,我注意到您在间接公式中使用了双引号TWICE。因此,#REF错误
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句