在Excel中返回整个工作表的HLOOKUP值

在Excel中返回整个工作表的HLOOKUP值,excel,vlookup,Excel,Vlookup,我有一张包含多个值的多个项目(粗体)的Sheet2 在表1(以下)中,我需要使用B2的公式返回这些值: =如果(A2=0,HLOOKUP($A2,Sheet2!1:1048576,右(B$1,2)+1,0)) 指挥与控制系统 =如果(B2=0,HLOOKUP($A2,Sheet2!1:1048576,右(C$1,2)+1,0)) 对于B6 =如果(A6=0,HLOOKUP($A6,Sheet2!1:1048576,右(B$1,2)+1,0)) 但是,正如您所看到的,它只返回表(A、B、C、D

我有一张包含多个值的多个项目(粗体)的Sheet2

在表1(以下)中,我需要使用B2的公式返回这些值:

=如果(A2=0,HLOOKUP($A2,Sheet2!1:1048576,右(B$1,2)+1,0))

指挥与控制系统

=如果(B2=0,HLOOKUP($A2,Sheet2!1:1048576,右(C$1,2)+1,0))

对于B6

=如果(A6=0,HLOOKUP($A6,Sheet2!1:1048576,右(B$1,2)+1,0))


但是,正如您所看到的,它只返回表(A、B、C、D)的第一行,而不返回下表(E、F、G、H)。我认为它的更改非常简单,但我仍然找不到它。

我怀疑您的示例数据不能准确地表示实际的数据集,因此转置可以替换您的数据集

样本表2:

group A group B group C group D
A-001   B-001   C-001   D-001
A-002   B-002   C-002   D-002
A-003   B-003   C-003   D-003
A-004   B-004   C-004   D-004
A-005   B-005   C-005   D-005
        B-006   C-006   D-006
        B-007   C-007   
                C-008   
                C-009   

group E group F group G group H
E-001   F-001   G-001   H-001
E-002   F-002   G-002   H-002
        F-003       
第一张!B2公式:

=INDEX(Sheet2!$A:$D, COLUMN(B:B)+INT((ROW(1:1)-1)/4)*11, MOD(ROW(1:1)-1, 4)+1)&TEXT(,)
复制或填写右下角。解析为零长度字符串会阻止索引在遇到空白单元格时返回零。///函数是解析索引的行数和列数的简单数学操作


我怀疑您的示例数据不能准确地表示实际数据集,因此转置的数据可能会取代您的

样本表2:

group A group B group C group D
A-001   B-001   C-001   D-001
A-002   B-002   C-002   D-002
A-003   B-003   C-003   D-003
A-004   B-004   C-004   D-004
A-005   B-005   C-005   D-005
        B-006   C-006   D-006
        B-007   C-007   
                C-008   
                C-009   

group E group F group G group H
E-001   F-001   G-001   H-001
E-002   F-002   G-002   H-002
        F-003       
第一张!B2公式:

=INDEX(Sheet2!$A:$D, COLUMN(B:B)+INT((ROW(1:1)-1)/4)*11, MOD(ROW(1:1)-1, 4)+1)&TEXT(,)
复制或填写右下角。解析为零长度字符串会阻止索引在遇到空白单元格时返回零。///函数是解析索引的行数和列数的简单数学操作


这是金子!尽管我仍在试图弄清楚,为什么要使用(1:1)-1)/4)*11行和&TEXT(,)。我在哪里可以进一步研究这个问题?关于更多细节,link提供的信息不多。非常感谢你的帮助。我真的很想在这方面做更多的研究。你能给我一些书或者参考资料来进一步挖掘吗?
TEXT(,)
只是解决零长度字符串的另一种方法;e、 g.
。将
=INT((行(1:1)-1)/4)*11
放入一个未使用的单元格中,向下和向右填充,查看它如何调整返回到索引函数的行号。顺便说一句,如果Sheet2中的数据经常更改,您可能需要使用
INT((行(1:1)-1)/4)*Sheet2!行(11:11)
自动补偿要偏移的插入或删除行。请查看我在回答中提供的所有官方support.office.com文档链接。谢谢。但是,是否可以使用查找功能?或者其他函数,因为,这个公式是静态的。这意味着,例如,当我将A7行改为H组时,如果是F,则B、C、D列中的数据,。。没有更改。是的,您可以将公式设置为查找,但必须使用IFERROR在四列中的每一列中循环。这是Gold!尽管我仍在试图弄清楚,为什么要使用(1:1)-1)/4)*11行和&TEXT(,)。我在哪里可以进一步研究这个问题?关于更多细节,link提供的信息不多。非常感谢你的帮助。我真的很想在这方面做更多的研究。你能给我一些书或者参考资料来进一步挖掘吗?
TEXT(,)
只是解决零长度字符串的另一种方法;e、 g.
。将
=INT((行(1:1)-1)/4)*11
放入一个未使用的单元格中,向下和向右填充,查看它如何调整返回到索引函数的行号。顺便说一句,如果Sheet2中的数据经常更改,您可能需要使用
INT((行(1:1)-1)/4)*Sheet2!行(11:11)
自动补偿要偏移的插入或删除行。请查看我在回答中提供的所有官方support.office.com文档链接。谢谢。但是,是否可以使用查找功能?或者其他函数,因为,这个公式是静态的。这意味着,例如,当我将A7行改为H组时,如果是F,则B、C、D列中的数据,。。没有更改。是的,您可以将公式设置为查找,但必须使用IFERROR在四列中的每一列中循环。