我想创建一个超过2个工作表的VLOOKUP
,并查看三个查找值,其中一个与中间的-
连接。
基础数据太大,无法放入此处(30k字符限制),所以这里是文件:
https://wetransfer.com/downloads/b475e4206e9b1c01519b4e6405fbf2f420180208112525/49c87b
在“变换”标签中,我尝试使用以下公式:
=INDEX(Data!D10:BB300,MATCH(A4&"-"&B3,INDEX(Data!D7:AO7,0)),MATCH(Transform!B2,Data!A11:B300,0))
但即使我已将其指向正确的单元格,也要获得#N/A
。
预期输出也在文件中。
快速解释:
在Data
标签中,我有一行包含Jan-16
,Feb-16
,Mar-16
等日期
同样在Data
标签中我有一行包含Actual
或Budget
同样在Data
标签中,我的值为Total Alpha
在Transform
标签中,我的布局如下:
_______________________
|Actual | Total Alpha |
-----------------------
| |16 |17 |
-----------------------
|Jan | | |
-----------------------
|Feb | | |
-----------------------
|Mar | | |
-----------------------
|Apr | | |
-----------------------
|May | | |
-----------------------
|Jun | | |
-----------------------
|Jul | | |
-----------------------
|Aug | | |
-----------------------
|Sep | | |
-----------------------
|Oct | | |
-----------------------
|Nov | | |
-----------------------
|Dec | | |
-----------------------
| | | |
-----------------------
|Budget | | |
-----------------------
| |18 | |
-----------------------
|Jan | | |
-----------------------
|Feb | | |
-----------------------
|Mar | | |
-----------------------
|Apr | | |
-----------------------
|May | | |
-----------------------
|Jun | | |
-----------------------
|Jul | | |
-----------------------
|Aug | | |
-----------------------
|Sep | | |
-----------------------
|Oct | | |
-----------------------
|Nov | | |
-----------------------
|Dec | | |
̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅
使用三VLOOKUP
我希望能够查看(例如):
Actual
& Total Alpha
& Nov
& 17
(使用A4&"-"&B3
之类的内容将值合并为数据标签,其值为Nov-17
),并在Data
标签中找到相关值。
答案 0 :(得分:4)
在B4范围内
=INDEX(Data!$A$1:$Z$22,MATCH(Transform!$B$2,Data!$A$1:$A$22,0),MATCH(DATEVALUE(Transform!$A4&Transform!B$3),Data!$1:$1,0))
拖动以填充到C15。
在B19中放
=INDEX(Data!$AA$1:$AL$22,MATCH(Transform!$B$2,Data!$A$1:$A$22,0),MATCH(DATEVALUE(Transform!$A19&Transform!B$18),Data!$1:$1,0)-COLUMN(Data!Z1))
拖动以填充到B30。
这会索引一个查找范围,然后找到感兴趣的行(例如总alpha)和列(日期),并返回交叉值。
如果您想要不同的行,请更改B2中的值,例如总测试版
版本2:实际和目标的动态查找 - 可以稍微整理
创建两个命名范围
Ctrl + F3 打开名称管理器,然后添加
名称:ActualRange
参考:
=OFFSET(Data!$A$1,0,0,ROWS(Data!$1:$22),MATCH(Transform!$A$17,Data!$2$2,0)-1)
名称:BudgetRange
引用关联:
=OFFSET(Data!$A$1,0,MATCH(Transform!$A$17,Data!$2$2,0)-1, ROWS(Data!$1:$22),MATCH(Transform!$A$17,Data!$2$2,0))
然后在B4
拖动以填充C15
:
=INDEX(ActualRange,MATCH(Transform!$B$2,Data!$A$1:$A$22,0),MATCH(DATEVALUE(Transform!$A4&Transform!B$3),Data!$1:$1,0)
然后在B19
拖动以填充B30
:
=INDEX(BudgetRange,MATCH(Transform!$B$2,Data!$A$1:$A$22,0),MATCH(DATEVALUE(Transform!$A19&Transform!B$18),Data!$1:$1,0)+ROWS($A$19:$A19))
有一些余地可以进一步减少当前在整行中设置的索引范围。
答案 1 :(得分:1)
这些数组公式应该可以满足您的需求。
你必须使用 Ctrl + Shift + 输入提交
Transform!B4
应该(将其复制到Transform!B4:C15
范围内的其余单元格):
=INDEX(Data!$A$1:$AL$22,MATCH(Transform!$B$2,Data!$A$1:$A$22,0),MATCH(DATEVALUE($A4&" 1, "&B$3)&$A$2,Data!$A$1:$AL$1&Data!$A$2:$AL$2,0))
Transform!B19
应该是{将其复制到Transform!B19:B30
范围内的其余单元格):
=INDEX(Data!$A$1:$AL$22,MATCH(Transform!$B$2,Data!$A$1:$A$22,0),MATCH(DATEVALUE($A19&" 1, "&B$18)&$A$17,Data!$A$1:$AL$1&Data!$A$2:$AL$2,0))