将 Hlookup 与 Choose() 数组结合使用

Pie*_*e44 2 excel excel-formula

我正在尝试使用 Hlookup 和“Choose()”函数作为数组。它与 vlookup 完美配合,如下所示:

=VLOOKUP(1;CHOOSE({1,2};A1:A3;C1:C3);2;FALSE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

为什么 Hlookup 不起作用,如下所示:

=HLOOKUP(1;CHOOSE({1,2};A1:C1;A3:C3);2;FALSE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

注意:我正在尝试修复我的 Excel 公式,因此不需要 VBA。

Chr*_*dal 5

因为你的数组是水平的。您需要更改分隔符。

您可以将数组视为{1,2}以下范围:

| 1| 2|

这意味着CHOOSE({1,2},A1:A3,C1:C3)可以将其视为:

| =A1:A3| =C1:C3|

| =A1| =C1|
| =A2| =C2|
| =A3| =C3|

VLOOKUP您对此进行操作,找到=A3,然后查看第二列:=C3

现在,这也意味着可以这样CHOOSE({1,2},A1:C1,A3:C3)表示:

| =A1:C1| =A3:C3|

| =A1| =B1| =C1| =A3| =B3| =C3|

HLOOKUP对此进行操作,找到=C1,然后...嗯,没有第二行。

这意味着我们需要一种方法来表示一点:

| =A1:C1|
| =A3:C3|

| =A1| =B1| =C1|
| =A3| =B3| =C3|

因为然后你会发现=C1,查看第二,然后得到=C3

那么,我们该怎么做呢?简单的!我们只需更改{1,2}{1;2},因为它代表

| 1|
| 2|

反而:

=HLOOKUP(1;CHOOSE({1;2};A1:C1;A3:C3);2;FALSE)
Run Code Online (Sandbox Code Playgroud)

 
 
(顺便说一句,这意味着{1,2;3,4}变成以下内容:)

| 1| 2|
| 3| 4|