大数跨境

如何用两个XLOOKUP函数进行交叉查找举例说明

如何用两个XLOOKUP函数进行交叉查找举例说明 浅谈出口账务和excel函数
2026-10-09
5
用两个 XLOOKUP 做交叉查找,核心思路是:一个 XLOOKUP 先按列标题找到“整列”,另一个 XLOOKUP 再按行标题在这列里找到具体值;或者反过来,先找“整行”,再找具体列。

示例表格

姓名 一月 二月 三月
张三 100 150 200
李四 110 160 210
王五 120 170 220

假设:

· 行标题:A2:A4(张三、李四、王五)
· 列标题:B1:D1(一月、二月、三月)
· 数据区域:B2:D4
· 要查找:李四 在 三月 的数值

---

方法一:先找列,再找行

公式:

```excel
=XLOOKUP("李四", A2:A4, XLOOKUP("三月", B1:D1, B2:D4))
```

也可以把查找值放在单元格里,例如 G1 放“李四”,G2 放“三月”:

```excel
=XLOOKUP(G1, A2:A4, XLOOKUP(G2, B1:D1, B2:D4))
```

计算过程:

1. 内层:XLOOKUP("三月", B1:D1, B2:D4)
      在列标题 B1:D1 中找到“三月”,返回数据区域 B2:D4 中对应的那一列,即 D2:D4,结果为 {200;210;220}。
2. 外层:XLOOKUP("李四", A2:A4, {200;210;220})
      在行标题 A2:A4 中找到“李四”,返回对应值,即 210。

---

方法二:先找行,再找列

公式:

```excel
=XLOOKUP("三月", B1:D1, XLOOKUP("李四", A2:A4, B2:D4))
```

或引用单元格:

```excel
=XLOOKUP(G2, B1:D1, XLOOKUP(G1, A2:A4, B2:D4))
```

计算过程:

1. 内层:XLOOKUP("李四", A2:A4, B2:D4)
      在行标题 A2:A4 中找到“李四”,返回数据区域中对应的那一行,即 B3:D3,结果为 {110,160,210}。
2. 外层:XLOOKUP("三月", B1:D1, {110,160,210})
      在列标题 B1:D1 中找到“三月”,返回第三个值,即 210。

---

通用模板

先列后行:

```excel
=XLOOKUP(行查找值, 行标题区域, XLOOKUP(列查找值, 列标题区域, 数据区域))
```

先行后列:

```excel
=XLOOKUP(列查找值, 列标题区域, XLOOKUP(行查找值, 行标题区域, 数据区域))
```

---

加上“找不到时返回什么”

可以给 XLOOKUP 加第 4 个参数:

```excel
=XLOOKUP(G1, A2:A4, XLOOKUP(G2, B1:D1, B2:D4, "无此列"), "无此行")
```

这样如果列标题找不到,内层返回“无此列”;如果行标题找不到,外层返回“无此行”。

---

注意点

1. XLOOKUP 默认就是精确匹配,不用像 VLOOKUP 那样写 FALSE。
2. 内层 XLOOKUP 返回的必须是一个数组,外层 XLOOKUP 才能继续用它作为返回区域。
3. 标题区域和数据区域要对应:列标题是几列,数据区域就要有几列;行标题是几行,数据区域就要有几行。
4. 实际使用时建议加绝对引用,例如 $A$2:$A$4、$B$1:$D$1、$B$2:$D$4,方便下拉填充。
5. 这种写法可以完全替代传统的 INDEX + MATCH + MATCH 交叉查找。

【声明】内容源于网络
0
0
浅谈出口账务和excel函数
1234
内容 1651
粉丝 0
浅谈出口账务和excel函数 1234
总阅读32.8k
粉丝0
内容1.7k