<p><img src="data/attachment/forum/202601/09/100933fsqyo5eiostd99a4.webp" alt="d94295e4de394fb78c498cc0286bf45e.webp" title="xlookup函数-Excel教程-匠们网" /></p>; }/ V( G0 k# q2 ?! Z* }
<p><code>XLOOKUP</code> 是 <strong>Excel 365/2021 及后续版本</strong>新增的<strong>新一代动态查找函数</strong>,专为解决传统查找函数(<code>VLOOKUP</code>/<code>HLOOKUP</code>/<code>INDEX+MATCH</code>)的痛点设计,支持<strong>任意方向查找、反向查找、多条件查找、自定义默认值</strong>等功能,且语法更简洁、逻辑更直观。</p>
2 v, y4 D( @( L; y- l5 X6 y& N<h2>一、函数核心语法与参数说明</h2>1 u1 h1 u% l/ H6 H# S/ L& X2 l4 r( N
<h3>1. 完整语法</h3>
# Y5 c7 Y" R+ K/ [- U3 _<pre><code class="language-excel">XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
+ V" L1 d5 ~" v2 B- p</code></pre>) R# `5 b' v; [+ K
<h3>2. 参数逐义解析</h3>
) [" \3 i% f7 f/ {<table>; {3 n* u( i6 [. G
<thead>
/ L: a4 X* |' F) v<tr>" y* T, {8 J4 y! G- c
<th>参数名</th>
/ V7 `% d, O5 {4 G ]! x2 @$ F) V: n<th>必选/可选</th> x2 }; p" t- K; g3 q- D9 Q
<th>数据类型</th>
% G$ v# ?4 q; U$ K' {<th>核心作用</th>
4 S& v- V( j; o2 R* q<th>注意事项</th>
- x2 [7 q* {! I0 q0 x</tr>
6 G# V" K5 R: }8 R% l</thead>3 z( W9 I9 |6 P* ?# G) _ a
<tbody>3 @! Z3 _ t* i) a- k( i
<tr>
; @1 H+ x+ P; O. w0 J1 F<td><code>lookup_value</code></td>
8 ?" s. @; l# Y" p- _: M( H<td>必选</td>: I" T l+ L* L( o1 }* D/ h8 w
<td>任意类型(文本/数字/单元格引用)</td>
! N0 j/ R! `& i$ U7 ]2 S. _, d<td><strong>查找目标</strong>:要在 <code>lookup_array</code> 中寻找的值</td>( {, g2 I+ q5 z, T$ z
<td>可直接输入常量(如 <code>"张三"</code>/<code>1001</code>),或引用单元格</td>
5 ]: p% \* k* V& P6 Y</tr>
, `$ L) ^; \- ?" [4 ]4 O- o<tr>- t7 e# F( j7 }" K# x+ c
<td><code>lookup_array</code></td>
6 p- X7 ?3 k4 z& d<td>必选</td>3 \$ U8 n* Z2 o) Q; f4 ]
<td>单行/单列区域/一维数组</td>
- P! f- }0 m9 S: R, q4 Y<td><strong>查找区域</strong>:存放查找目标的区域,仅支持<strong>单行或单列</strong></td>% y, Z. U; ]+ k* d. ~
<td>区域大小必须与 <code>return_array</code> 完全一致(行数/列数相同)</td>
& _; n0 {5 F) ?4 p1 K* ^</tr>
: k p3 C, T( L1 a& t<tr>. E: G3 V* y3 W# \# C& b
<td><code>return_array</code></td>3 k. H E) }9 L' { b7 ~: V/ `
<td>必选</td>( w% Q8 W# S# y3 G0 v6 O1 i0 T- z2 @! ]
<td>单行/单列区域/一维数组</td>
& l/ T. a$ y$ H F) c<td><strong>返回区域</strong>:找到匹配值后,要返回的结果区域,仅支持<strong>单行或单列</strong></td> _+ h" ?9 R& c% _
<td>与 <code>lookup_array</code> 一一对应,匹配到第 N 个值,就返回 <code>return_array</code> 第 N 个值</td>
6 U0 f; W3 `! o" V W, K* Y7 |2 }- o+ Z</tr>/ e% ?) \( f$ R( U U
<tr>( W* D2 N. |1 i$ S/ S, U& \9 ?
<td><code>[if_not_found]</code></td>
1 R9 b% p' ?: V2 ^2 L& ]/ h+ _<td>可选</td>
: ^7 w) u; J" q3 E<td>任意类型</td>/ w% }) C6 m; h1 ~0 n
<td><strong>未找到默认值</strong>:当 <code>lookup_array</code> 中无匹配项时,返回的自定义结果</td> d2 {6 G1 ]1 ~" c; Q7 i" n! V
<td>省略时默认返回 <code>#N/A</code> 错误</td>
" S' q1 u7 Y8 ~8 l8 \$ c</tr>
. H7 {9 X8 E! F+ E3 o# A6 V3 }<tr>
8 f# o. f* L5 ^/ G<td><code>[match_mode]</code></td>
3 B6 n2 F+ Q9 c2 E5 ^<td>可选</td>
6 }% F- O% n1 t<td>数字(0/1/-1/2)</td>
4 ?- U: B2 I/ [# g, U, K& k<td><strong>匹配模式</strong>:定义查找的匹配规则</td>
$ [# ^% a- v+ G<td>0 = 精确匹配(默认);1 = 近似匹配(升序);-1 = 近似匹配(降序);2 = 通配符匹配</td>0 M2 ]/ S5 s L# N* ]
</tr>
1 U7 O* o# c9 f6 J<tr>
* r1 c w% ^! L. C0 E% r<td><code>[search_mode]</code></td>8 T# \8 {( A. a1 k4 v, l; H
<td>可选</td>/ P# a, R, m$ L/ q! d1 b
<td>数字(1/-1/2/-2)</td>
/ P' n- U. c0 L R<td><strong>搜索模式</strong>:定义查找的搜索方向和规则</td>
& W( c9 w2 }8 n<td>1 = 从前往后搜索(默认);-1 = 从后往前搜索;2 = 二分法(升序);-2 = 二分法(降序)</td>' p8 e" N) N' W4 {* P( [& e
</tr>
3 m0 E' o" x- X9 I</tbody>
/ \: Y- d2 s9 T N- ]: C' p</table>
- h# `9 v( O4 C1 c( t' I2 x<h3>3. 关键特性</h3>
$ f7 d8 X$ K6 E9 X<ul>
5 |9 V8 C) w1 { z) w<li><strong>方向自由</strong>:无需区分垂直/水平查找,<code>lookup_array</code> 和 <code>return_array</code> 可以是任意单行/单列。</li>
# F' J$ C( g) z. f<li><strong>反向查找</strong>:无需调整数据源顺序,直接实现“由值找键”(如根据姓名找工号)。</li>
( {5 T1 g. K7 [* l<li><strong>动态适配</strong>:支持与动态数组函数(<code>FILTER</code>/<code>SORT</code>)嵌套,返回多结果溢出。</li>
$ I5 Z7 {" {& n, i<li><strong>错误友好</strong>:通过 <code>if_not_found</code> 自定义未找到的提示,避免 <code>#N/A</code> 错误。</li>; ?: X0 N/ u# y8 e& b
</ul>4 Y& J2 c! }' h& i' m3 }/ y$ e) d3 z0 O2 `
<h2>二、数据源准备(通用示例数据)</h2>
$ Y, q$ g: V0 m B<p>为统一示例,使用<strong>员工信息表</strong>作为基础数据源,共 5 行数据:</p>
( C) j$ ]" [9 x/ S* W1 y! Z<table> x. d/ t% W) G) [: G
<thead>& k0 r; ~! v' ]& B
<tr># H1 h h8 w3 q, g' x& `" {
<th>单元格区域</th>
+ X3 j+ Y) T- J) D<th>A (员工ID)</th>
% }0 l0 t% E) }6 d. ?<th>B (姓名)</th>$ Z& D/ h: \* w4 C: a. n' d
<th>C (部门)</th>
. O; y7 p0 b9 T8 s$ m* N! G( e<th>D (月薪)</th>7 t6 z1 {& o( E1 L+ z% b
</tr>) ^6 t# k4 i3 d8 b* j1 C' A
</thead>8 f3 D( f; l, Y) L
<tbody>
4 S- [5 @# L# M5 |6 [3 ]<tr>
0 A' y$ r0 V; \8 q/ p5 l+ |& ]<td>1</td>
+ ^" ]3 P5 E) L7 R2 M1 T<td>1001</td>
, ~/ v2 t( O: L5 y<td>张三</td>
; ?2 D2 G+ q+ J& x, ~8 k P<td>销售部</td>
`; ?. t% ~& h* h! I0 \<td>8000</td>
: X) ^0 \. ~* w1 x9 v5 E</tr>
: [7 k2 m( {- I; @7 I. N' q<tr>$ u1 ]. E! R9 m8 X+ n9 ?
<td>2</td>
4 Z+ _! }" e' [8 g$ b$ s7 o" u<td>1002</td>* ]- M% U7 e' ^- T- B) c
<td>李四</td>
" e2 d) L; o, D: }<td>技术部</td>
$ }) m; g" w9 X& Y<td>12000</td>: Y9 ]4 D/ _6 k6 N( T; u
</tr>, m5 \& X7 n- Y. A( @
<tr>
& }1 T6 C1 q! ~8 j9 E<td>3</td>
" s) \% x* j, P5 O<td>1003</td>) |1 @5 [2 N( D5 M2 x& e
<td>王五</td>6 x2 b$ k ^! r) m( o
<td>销售部</td>
& i4 e' o t5 w' z5 y8 ?<td>9000</td>& i7 X' y) H0 u X6 K) y
</tr>, Q* Y9 o( V; U8 H. W. N0 J @: f4 V
<tr>
* K: R+ T$ m, k7 T<td>4</td>
; u% `& ~' X) a; v6 V: S+ U<td>1004</td>: g, I* B3 u1 s9 a: ?" M7 T
<td>赵六</td>
' a9 n! e8 o6 L& j& A# L<td>技术部</td>. d$ \6 B+ U( V& Q
<td>15000</td>
+ Y9 q% m" H; j6 k0 Y( P% D& \</tr>3 _5 Z) d. ~, j9 F& T
<tr>! L* X$ k; f& f }! C: i7 \) O
<td>5</td>" z3 F% ] {7 |$ B+ P* U- E
<td>1005</td>7 V# d$ }5 J+ F1 F
<td>钱七</td>
k6 \4 I: P1 F<td>市场部</td>
% p1 V6 a. p* ~9 I: [<td>7500</td>
5 O3 n ]3 q4 p( \: k# F5 }( e! b</tr>1 k# D7 v: T8 D
</tbody>
$ T& A! _) ]& b0 l4 {. I# l</table>
+ p6 ^6 }% ^$ f- c5 _3 f4 A<p>后续所有示例均基于此表,数据区域记为 <code>A1:D5</code>。</p>' q- [$ K5 A+ o1 n/ F. X
<h2>三、初级用法:基础单条件精确查找</h2>
7 c L3 {/ ?/ V V8 d: W<h3>场景1:正向查找(替代 VLOOKUP)</h3>5 ` a4 x$ Q! M# ?8 Y
<p><strong>需求</strong>:根据<strong>员工ID(1003)</strong>,查找对应的<strong>姓名</strong>。</p>6 a! B, \( B# A) _4 C: E
<h4>公式编写</h4>
* B, s$ V- S( }& R' R<pre><code class="language-excel">=XLOOKUP(1003, A2:A5, B2:B5)
. }- M3 O2 G s/ P9 c$ [</code></pre>) p" d% n% H$ o; l5 `1 x
<h4>参数对应说明</h4>8 R5 @) c* T8 {+ P1 q. r9 X5 A. k
<table>, T& O% Y$ @ s' Q
<thead>
U+ l- e( S' B3 Z<tr>: k2 v. m2 L6 s
<th>参数</th>
& }: `, ^) e/ u6 }! `<th>取值</th>
) r N0 P) V; g. e. _<th>作用</th>
0 [$ }$ a- Q+ i5 k+ I. f; q* W</tr>1 m/ j" S+ d9 P9 T
</thead>. e, Y7 Z9 {! n6 t7 ]# x
<tbody>5 Y+ ], w) S3 Z. x7 ]) K3 M; p
<tr>
& ^6 T- D6 j7 c<td><code>lookup_value</code></td>3 j! y1 M4 D* J8 F
<td><code>1003</code></td>
( t$ r' e1 j# |2 q2 K; r$ O s<td>查找目标:要找的员工ID</td>) m5 e1 Z2 @4 _$ }
</tr>8 w/ I6 r; }. ~) @" {
<tr>
2 m) N# A) `4 K2 z% F3 I<td><code>lookup_array</code></td>& c: T+ n0 f( n0 i, @# M2 _, V; E
<td><code>A2:A5</code></td>
" U& N+ `5 \7 _ D<td>查找区域:存放员工ID的列(A列)</td>2 ^! x3 w1 `) X0 s
</tr>, O' n( ~+ }8 J6 m) [0 X0 |" ^
<tr>8 k% i1 W* g% ?$ t% I6 |
<td><code>return_array</code></td>
) v3 X1 R4 F! X% o9 a- B9 Z0 D: V<td><code>B2:B5</code></td>! }" n+ ]5 K1 U
<td>返回区域:存放姓名的列(B列),与A列一一对应</td>" e7 G+ e i% D5 v& b. v5 j; o |
</tr>9 m. o& l* \) { w. r2 X
<tr>
+ W5 L# X2 o: F: ~<td><code>[if_not_found]</code></td>
6 \* m0 v7 V# B0 r- p<td>省略</td>
5 K1 M4 r4 Z- t<td>未找到时返回 <code>#N/A</code></td>/ n4 v P; }' I0 _
</tr>
4 V, A, w7 U, o: T& T) [8 P6 \" \<tr>
5 |3 }) o$ m% C" M a/ C) r6 g<td><code>[match_mode]</code></td>
+ U6 v, h! t3 p8 P- ~<td>省略(默认0)</td>
/ E" l/ V# d2 }! w1 ~- {<td>精确匹配,必须找到完全等于1003的值才返回结果</td>
5 Q& R' X5 f% D& G& [" c# n</tr>
! x% ]5 l0 a' @: d<tr>5 p% Y+ r3 W; W; x7 z- _( t: O$ X# L
<td><code>[search_mode]</code></td>6 b. j% Y! Y# s2 [! I+ s1 R/ a4 m
<td>省略(默认1)</td>
; ~4 y5 t5 [4 i. a2 u# Q<td>从前往后搜索,找到第一个匹配值即停止</td>
* h6 w4 L$ L3 L/ |</tr>
# a/ }; \$ q" l, s; T' G, A</tbody>
& ~' I* ?! L9 ]* C</table>
. H ]# H* A' o) n+ d9 _) w<h4>结果</h4>& K5 _! u L8 i3 D
<pre><code>王五& z" y6 p! b ` u% K
</code></pre>1 ?5 N: p; h/ \& X! ~+ {5 r& g/ C
<h3>场景2:自定义未找到提示</h3>, ~+ L( v9 T2 _5 z
<p><strong>需求</strong>:查找员工ID=1006的姓名,若不存在则返回“无此员工”。</p>
& N, g# G. ?7 A7 k7 `& w<h4>公式编写</h4>
& F0 l) i: r! E* O8 ^, z8 w0 X" q<pre><code class="language-excel">=XLOOKUP(1006, A2:A5, B2:B5, "无此员工")
' w# \2 g8 S& q8 a. g) s</code></pre>/ \* @ P- J& Y; N; t7 P, S
<h4>关键参数:<code>if_not_found="无此员工"</code></h4>" a- a. @# [" D# `
<p>当 <code>lookup_array</code> 中无 1006 时,不再返回 <code>#N/A</code>,而是返回自定义文本。</p>
" W7 M D7 J7 s<h4>结果</h4>
- \6 f4 N9 H* o4 ]<pre><code>无此员工
, R1 h5 N& |0 g: [: y</code></pre>4 v6 ]5 H( x1 Y+ E
<h3>场景3:水平查找(替代 HLOOKUP)</h3>( W x+ d) H3 e9 B+ ?6 B/ {
<p><strong>需求</strong>:在水平数据源中,根据<strong>表头(月薪)<strong>查找</strong>张三</strong>的月薪。</p>' m f! {- |0 e! t9 `- Z) Y
<h4>水平数据源(G1:K2)</h4>
# P2 w- B% A1 W9 `<table>
" z: T; ?( i$ ~2 c6 t<thead>
& ] I9 ~) U! Y<tr>$ B) _$ O! W4 R& ?1 r8 @( e
<th>G1</th>5 F3 u! t! P9 ^: S+ o
<th>H1</th>7 b% k2 S7 N/ ]6 g o9 D! P9 C/ N- F
<th>I1</th>
9 h9 E! {4 y# P, Z) Q5 T' m8 k( s<th>J1</th>
' v) O7 x R/ d$ b<th>K1</th>! e( K, X% E2 O. F! n2 Y
</tr>( \! T, z. \ A9 I- z
</thead>, Z3 | D2 S b( n% ^/ O$ J! q( \
<tbody>& i9 \, Y( ?( x
<tr>7 d* T" H1 {$ g
<td>姓名</td>
: V) {; C2 g* i. }<td>张三</td>
8 H, f P. @5 Q, c* P& g/ F<td>李四</td>
" ?$ P2 w) }% P% K6 c8 B<td>王五</td>2 n8 j: M( h' Y. U7 `' t0 f
<td>赵六</td>
# t8 O9 c0 A* ?- ]</tr>% i- c% `8 R, z. a, g. v
<tr>3 u1 W- {2 h, l/ M! t4 C+ _) O* L
<td>月薪</td>2 c2 K' A1 @% q) G$ A
<td>8000</td>
7 @& D1 p/ ]3 P5 p6 X1 U<td>12000</td>
2 f u$ F% Q* y4 V4 s2 `<td>9000</td>8 h4 z& \/ p' y. }0 @! u
<td>15000</td>
( t9 U0 e& g" z' Y3 f2 i</tr>
, l# M8 [3 |9 q* M0 | J/ ~& V</tbody>
: w$ O4 r8 n, `" v* o</table>5 `* |4 I( m) C1 B$ G' N0 D- _
<h4>公式编写</h4>
/ c+ A8 ^6 W% e) V5 X<pre><code class="language-excel">=XLOOKUP("张三", H1:K1, H2:K2)
7 a& m* e; n/ q! `8 h5 u. b: H</code></pre>
! P0 u8 t k+ M<h4>参数说明</h4>
; e9 P( S$ |, h<ul>! x; ?8 A/ m# q
<li><code>lookup_array</code> 和 <code>return_array</code> 为<strong>水平单行区域</strong>,XLOOKUP 自动适配水平查找,无需额外设置。</li>( a/ k( r5 @, P; i6 J. k! F
</ul>
3 Q6 ~& r1 v8 I# b- z+ e<h4>结果</h4>, I! N0 R: N3 A
<pre><code>8000
2 _" j* d' V O4 P, H</code></pre>7 D+ f( k# c% g2 F
<h2>四、中级用法:反向查找与模糊匹配</h2>: u6 E/ m7 o: \3 @5 Y! `
<h3>场景1:反向查找(传统方法需 INDEX+MATCH)</h3># k) Z4 `. i |# J/ `- P
<p><strong>需求</strong>:根据<strong>姓名(李四)</strong>,查找对应的<strong>员工ID</strong>(传统 VLOOKUP 无法直接实现,因为姓名不在首列)。</p>
) c2 {) W7 H) c' j% l<h4>公式编写</h4>7 A7 Z7 V C8 p" j a8 t" \7 M& q
<pre><code class="language-excel">=XLOOKUP("李四", B2:B5, A2:A5)2 r. H3 J( ^" z% t
</code></pre>
6 ?1 B7 F3 m! ?<h4>核心优势</h4>+ [! Q/ j4 m2 m- e- f9 ]! X
<p><code>lookup_array</code> 可以是任意列(此处为姓名列 B 列),<code>return_array</code> 可以是左侧的 ID 列 A 列,无需调整数据源顺序,直接实现反向查找。</p>; t- O3 B' I" l7 t% L* Q
<h4>结果</h4>
" Y, `9 \9 \8 D<pre><code>10024 R# v6 K6 Y/ T% t0 _) d, y. s, L
</code></pre>
8 Z( o1 O2 ]# j<h3>场景2:通配符模糊匹配(<code>match_mode=2</code>)</h3>7 `5 j* u$ L+ ?0 Q$ [4 D
<p><strong>需求</strong>:查找**姓“张”**的员工的月薪(姓名以“张”开头)。</p>
. M. @( @1 f8 y/ x6 e ~3 W; L5 I& p<h4>公式编写</h4>6 f, P% x- {8 }7 M' J1 p' ?
<pre><code class="language-excel">=XLOOKUP("张*", B2:B5, D2:D5, "无匹配", 2)5 F/ D4 a* M, r# S5 U5 P' Q
</code></pre>
: Y* Y. ?0 g# U4 Q+ A4 B<h4>关键参数解析</h4># M$ l! v* Y7 Q$ i1 P" v1 B
<table>( n# g! K. {4 M( I5 T8 ]' u3 h' M
<thead>
( s0 z8 n: w* `7 O7 |, E<tr>
& Z% a0 b8 V& e7 w/ I- H3 O<th>参数</th>& c5 Z$ F6 s7 I6 j9 P. z9 a
<th>取值</th>- J6 M2 y- C7 {! G& p
<th>作用</th>0 l0 s+ W* f& ]- N) V9 i6 v% l; x
</tr>
; Z" ~1 d6 W, K+ Z% ]4 y: F! _</thead> H0 [9 r, u, d- }% P# f+ V
<tbody>; V: v2 j2 {. ^; s9 B
<tr>% }( L4 y; u! w! }& B4 y8 D$ e+ Z# a6 o
<td><code>lookup_value</code></td>
+ B- E2 M' L7 O1 W6 [* x<td><code>"张*"</code></td>0 U% C# |+ ]+ s) s$ j' k- l$ [9 S! A
<td>通配符规则:<code>*</code> 代表任意多个字符,<code>张*</code> 匹配所有以“张”开头的姓名</td>/ Q5 E5 y7 t. o+ O2 c
</tr>
2 J, l! x0 w' Q7 a9 D2 Y, w<tr>
?2 ?- O& _! H* Y8 V5 u<td><code>[match_mode]</code></td>
5 T6 w( Z: H3 i) ?7 \. N& S<td><code>2</code></td>5 O8 r2 O" r" o8 C2 ]
<td>启用通配符匹配模式,支持 <code>*</code>(任意字符)、<code>?</code>(单个字符)、<code>~</code>(转义)</td>5 D( Z" b" B9 u _+ S V5 S6 A
</tr>
2 h: r+ K* Z+ T1 ^7 \0 a9 g</tbody>3 M# i- E' H0 c9 T2 v
</table>% `7 A# h- |: O7 O
<h4>结果</h4>
" ?1 R: e# Z/ o9 |7 O8 S; y<pre><code>8000
' t5 \; X, Q- i7 o' ~7 b</code></pre>
: r% J: L1 m& b<h3>场景3:近似匹配(区间查找)</h3>9 i& ^% R3 Z0 i+ L7 u7 v9 }8 H
<p><strong>需求</strong>:根据<strong>分数(85)</strong>,查找对应的<strong>等级</strong>(等级规则:≥90=优秀,≥80=良好,≥70=中等,<70=及格)。</p>8 u' l6 w& P# S
<h4>等级对照表(F1:G5)</h4>
) N4 e2 F: z' y: O0 N5 ^<table>
3 C" }; [" A4 ^" J<thead># G& K5 q* c; Z* _$ H8 X4 e
<tr>8 n% C% k4 |. E1 J' x6 H
<th>F1 (分数下限)</th>. l# Q5 _9 J/ f4 s% I
<th>G1 (等级)</th>; A4 Q7 L, e. x% m* \+ I
</tr>2 ~1 w! G4 M% i4 _
</thead>
" p2 H) A8 ~* R' Y; Y$ V/ Z<tbody>
9 a5 W: k& ]7 B! x: q<tr>% K! U+ f) N p2 x, }4 a
<td>90</td>
! C3 c8 k3 c: r$ M+ w1 a( f2 g6 R<td>优秀</td>
1 ]% f5 g$ j& n</tr>
: f' x7 j2 ?) A% K<tr>& J6 N4 d- g* g4 H3 X
<td>80</td>
- \5 K1 `) T' F" W7 h) O. [<td>良好</td>5 j$ A9 [' g! H5 O
</tr>
" H8 X# e% _2 P6 P: D<tr>
5 d6 _* q) w1 b# V<td>70</td>
* u+ t/ b, ]5 U! m, b8 }<td>中等</td>; y. K) X4 g6 K% V) w6 n# ~* S6 P
</tr>& c# q4 I) E& G2 u8 J3 F7 h
<tr>
: O/ B6 S4 y9 l% {6 L* e1 I R<td>60</td>
6 o" ^1 y. r N% F! D+ v<td>及格</td># U: P- h8 D4 T7 t% v
</tr>
5 [6 q8 r4 `& M, g% J! W</tbody>8 n& I! H5 Y$ q
</table>
; ]* v7 Z0 {% Q8 H! [<h4>公式编写</h4>
6 p1 }3 f7 Q, Z6 c' Q6 ]4 S# ^, L1 T" s<pre><code class="language-excel">=XLOOKUP(85, F2:F5, G2:G5, "无等级", 1)' B' `* `( V) e) [
</code></pre>* _, o1 F9 D8 }% Q v9 \" k4 M2 \) R
<h4>关键参数:<code>match_mode=1</code></h4>
. E8 q1 K& ~9 r& q<ul>
% \5 x% {- o% W' G9 _% U<li><strong>近似匹配(升序)</strong>:当无精确匹配值时,返回<strong>小于且最接近</strong>查找值的结果。</li>3 o# z5 {3 B6 E& c) R6 Y0 d: v
<li>要求 <code>lookup_array</code> 必须按<strong>升序排列</strong>。</li>) x7 L- ]$ j8 ?4 T& F' j; ^: d, ^
<li>85 无精确匹配,小于85且最接近的是80,对应等级“良好”。</li># m& o2 T$ | [" V- T
</ul>& l: _5 s1 N$ l
<h4>结果</h4>
4 y7 u8 _: B6 u<pre><code>良好5 F. ^5 a+ P' y# d+ ?: @& @
</code></pre>3 s- i$ g5 m0 s/ l
<h3>场景4:从后往前搜索(<code>search_mode=-1</code>)</h3>+ x) `0 _* t; W, t$ s: l% q* p% i
<p><strong>需求</strong>:查找<strong>销售部</strong>最后一位员工的姓名(数据源中有2个销售部员工:张三、王五)。</p>
N4 E; w$ h# B/ t7 k<h4>公式编写</h4>
/ {) ]6 e! {7 }; F4 e<pre><code class="language-excel">=XLOOKUP("销售部", C2:C5, B2:B5, "无", 0, -1)% c; H- ^3 n' h b5 V: l. `# ]
</code></pre>
5 K8 l+ t1 ~. J# j p9 h9 p<h4>关键参数:<code>search_mode=-1</code></h4>2 r, n: M* M- ~. R5 j. O% v
<ul>- N! }- P4 R3 w% t* `
<li>从后往前搜索,找到<strong>最后一个匹配值</strong>即停止,而非第一个。</li>" D4 e' K- ~" |1 }1 T7 D9 W l
<li>销售部对应的姓名是张三(第1个)、王五(第2个),从后往前搜会返回王五。</li>+ X+ h9 |& A" t, n
</ul>
, W! G4 h3 b1 C% Y. [; h<h4>结果</h4>: d( m* Z- a$ `+ h
<pre><code>王五: K/ R+ k- t: Z' U! Z: J. o2 z
</code></pre>8 s& ?2 D5 L& H6 q6 C% e" S
<h2>五、高级用法:多条件查找与函数嵌套</h2>2 e0 E! U" x+ E: q' c/ b
<h3>场景1:多条件查找(用 <code>&</code> 连接条件)</h3>
6 w: }4 ?& K# _4 ?0 ~( I" v4 S) w5 n- u<p><strong>需求</strong>:查找**部门=技术部 且 月薪=15000**的员工姓名。</p>
6 m/ u) H( x: J6 L e( S<h4>公式编写</h4>
+ c: k2 u/ n! ^<pre><code class="language-excel">=XLOOKUP(1, (C2:C5="技术部")*(D2:D5=15000), B2:B5, "无匹配") X9 X ^# V% R' H- U8 M% ?1 n
</code></pre>
' V2 s9 n9 O- H1 y& @. U9 J5 z<h4>核心逻辑解析</h4>
& t# H& ~, C# n$ N- C; J; }& ], d<ol>
% L; z+ H' b* Z, h$ Z+ Z& n) L<li><strong>构造条件数组</strong>:2 n1 m4 S( P/ O. q
<ul>
) J" h3 x4 |( `- y' o<li><code>(C2:C5="技术部")</code> 生成布尔数组 <code>{FALSE, TRUE, FALSE, TRUE, FALSE}</code></li>5 }4 @; d* d d _, C. j" i
<li><code>(D2:D5=15000)</code> 生成布尔数组 <code>{FALSE, FALSE, FALSE, TRUE, FALSE}</code></li>
% [5 D6 ?" h g ^<li>两个数组相乘 <code>*</code>,布尔值自动转为 0/1,结果为 <code>{0, 0, 0, 1, 0}</code></li>" Q2 y4 E' _: l
</ul>+ T, ~1 ^( J5 t0 u8 y. _" O5 b
</li>; R( U* P1 X# ^) T2 \
<li><strong>查找目标设为1</strong>:<code>lookup_value=1</code>,即找到条件同时满足的位置(值为1的元素)。</li>
. ^9 i; C r+ t6 S2 R/ n( I<li><strong>返回对应姓名</strong>:值为1的位置对应姓名“赵六”。</li>
" ~+ ^8 i0 b _- m9 Z9 r+ \$ V% I</ol>
, K0 w+ O+ N! ?, U5 I' _( m5 d<h4>结果</h4>
' {3 W/ |3 T' e<pre><code>赵六
; S- h3 K/ j8 |: Q) a0 B</code></pre>
/ ] B; K; e( v b% c- k- b7 _<h3>场景2:动态数组溢出(返回多个结果)</h3>$ |: O+ Q* c6 }+ q, }7 v* V- L
<p><strong>需求</strong>:查找<strong>所有销售部员工</strong>的姓名(返回多个结果,自动溢出到单元格)。</p>
, A% F/ B2 d# z' n9 C+ c6 S9 [<h4>公式编写</h4>
i5 S- T6 X o8 V* ]<pre><code class="language-excel">=XLOOKUP("销售部", C2:C5, B2:B5, "", 2, 1) V" J( r1 g+ E
</code></pre>' j3 q6 w6 k5 X5 ]4 ^
<h4>关键特性:动态溢出</h4>
, l( c; y! X* Q; U* Y6 ?$ m% K<p>当 <code>lookup_array</code> 中有多个匹配值时,XLOOKUP 会返回<strong>所有匹配结果</strong>,自动向下溢出到相邻单元格(需 Excel 365 动态数组支持)。</p>2 t1 j9 |; X9 y" L9 ] }% Q
<h4>溢出结果</h4>) b7 R8 z3 ~7 L: E) \, C
<table>/ i7 A$ u: r" c6 T# T
<thead>
6 @, m3 d; Y! c4 j3 v9 L# N<tr>
$ h% H) h# ?- F<th>单元格</th>+ q# }% v) _( e( }8 ?+ I
<th>内容</th>
( u* F$ j! ^" O* L# j</tr>: r0 o1 S% f0 n: { Z
</thead>
- Q( G* i3 n" D<tbody>1 J; A. }) E+ j, w8 }7 i, ]
<tr>
5 G" J9 n- }/ i3 r3 G r<td>E2</td>
% |( m( g' }( o<td>张三</td>
" w7 y1 q8 V3 Z</tr>
# [. M6 o3 J/ w' U) T# _9 X<tr>
$ A8 a$ R! L3 u2 Z<td>E3</td>% N) `& N) m4 w/ s4 B; g W/ w* Q
<td>王五</td> e, @$ L7 c) q2 z% b9 C4 X
</tr>( O, j8 j8 }+ a4 i% ?. x
</tbody>8 p' f1 D# v( `4 n9 j
</table>
( d. X) E/ j; H, R<h3>场景3:嵌套 SORT 排序查找结果</h3>4 J$ z3 V0 R& `1 T, n
<p><strong>需求</strong>:查找所有技术部员工的月薪,并按<strong>降序排序</strong>。</p>
$ b1 w* w; b3 d1 N6 V1 k+ c<h4>公式编写</h4>
1 i, F$ ~ A) ~7 G8 D( M3 n<pre><code class="language-excel">=SORT(XLOOKUP("技术部", C2:C5, D2:D5, "", 2, 1), 1, -1); t7 ]: S4 c# Z+ x* @
</code></pre> s9 \ D' n. i! e' W% D: ?
<h4>嵌套逻辑</h4>2 B7 c: p. X+ |' }
<ol>3 U' P* @$ L$ ^! {* C
<li>先用 <code>XLOOKUP</code> 提取技术部所有月薪,返回数组 <code>{12000, 15000}</code>;</li>8 j# o" u3 n) e/ R- n3 W* {
<li>再用 <code>SORT</code> 函数对数组按第1列(唯一列)降序(<code>-1</code>)排序;</li>8 p/ u2 _* w; t' ]$ U/ c& r% U
<li>最终结果自动溢出。</li>- c! i Z8 Y" c9 ?: P
</ol>3 F; V9 ~' |7 w# }2 U) y* G
<h4>溢出结果</h4>. m% c7 j. h' L6 t+ P2 ^3 _
<table>1 i8 {) p( D1 z: {( X
<thead>
' ?" f. E1 M# v/ \1 _5 M$ { D<tr># O. [& ?! b9 ~
<th>单元格</th>
( E+ r$ O9 Q6 a! n, j<th>内容</th>
: t# h' S- |- G( S</tr>7 w. R6 p3 U( [3 j1 ^3 D
</thead>, x; @; K/ y8 R6 ?9 X+ H
<tbody>
7 ^6 s3 F; X9 w0 w<tr>) D! [0 d6 r, d: v$ g
<td>E2</td>
& Y1 z b: D' }<td>15000</td>
/ p4 p! X8 A2 {) I</tr>
6 T$ x1 h1 x+ W9 M4 }) o2 u) Z<tr># d( ?( l' E N. g# r: H
<td>E3</td>
2 _5 _0 U( j. b- r4 Y! ?" |7 X<td>12000</td>
X2 D V/ ^. N/ X9 K</tr>
3 s: r) h9 Z9 X0 W</tbody>5 I6 p* ^5 e3 t2 F
</table>4 U0 g }( |' F7 W/ P
<h3>场景4:与 FILTER 嵌套实现更灵活筛选</h3>- W5 U% ]. z- y) [. c3 V
<p><strong>需求</strong>:查找<strong>月薪>8000</strong>的员工姓名和部门,返回两列结果。</p>
, b- `% [; h' i( n% {4 c' H<h4>公式编写</h4>
* a! |3 s; R! T4 g) {<pre><code class="language-excel">=FILTER(HSTACK(B2:B5, C2:C5), D2:D5>8000)! X! J, i5 q$ L
</code></pre>; P' Z5 r+ p& Y8 ?, D3 Z
<blockquote>
6 i: J+ ~2 W$ a5 c3 p5 c<p>补充:XLOOKUP 单条件返回单列,多列结果建议用 <code>FILTER</code>+<code>HSTACK</code> 嵌套,更高效。</p>, B2 h) o* L: @6 O, t0 Y% ~/ {+ g
</blockquote>! T* t4 J! y1 N1 a( ~/ n
<h4>结果(溢出两列)</h4>9 _% F/ T y8 b" D
<table>
9 N- n0 k; Z' d6 S3 L; I; n<thead>
' b. l) N# J! x8 Q<tr># Q7 t l$ q: ]5 M: T9 P4 l
<th>姓名</th>2 O9 u7 a n) H. m9 f+ o
<th>部门</th>
7 B9 s9 ?. k; s$ Q+ K5 E</tr>
4 }2 e! v0 ?+ a9 e2 _</thead>
5 |! g% ~1 D1 T- G1 S% B<tbody>) K$ {- b1 E5 X6 V5 S9 ^
<tr>
6 N4 _2 g! M# f, \8 I3 }, T. L* D<td>李四</td>
! Z0 M5 K J+ s. _3 }% V3 T: H<td>技术部</td>
1 X: O7 d9 |5 ^3 p4 L6 C) P! [! _# X$ t</tr>
" m4 L' M' F$ ?5 {+ p<tr>) O+ k8 M1 @6 x3 P
<td>王五</td> x0 W4 \( m/ ~% Q
<td>销售部</td>
8 y6 F! D* I* x% z" z: A</tr>
6 z3 w" g; N3 f8 `7 [; I; ^<tr>
* e2 h0 \% H8 O% l2 f$ O E" N s<td>赵六</td>
- z& ^/ b% g# q! z* n, C! N<td>技术部</td>
6 A+ M _0 O. E8 r. `# n</tr>
M7 m8 f- b5 h6 Q- g9 S</tbody>1 e; F: y& w k! z0 }: W/ m
</table>
8 l& ^5 z$ q, b# O4 |<h2>六、常见问题与注意事项</h2>
6 U: K) m2 ~6 A2 Q! D: g b' U<ol>
% w! f! K/ [/ b @6 g, S" s. r<li>( `& P; o: ^* c$ g; v5 _
<p><strong><code>#N/A</code> 错误的解决</strong></p>: ]3 N' `8 c6 i) m) ]7 i5 ]2 A
<ul>
* s/ [: @6 C) ?" u/ l& [2 q% T* T) W. U<li>原因:<code>lookup_array</code> 中无匹配值且未设置 <code>if_not_found</code>;</li>/ N1 @: y& T$ P" K* u/ w( ^
<li>解决:添加 <code>if_not_found</code> 参数(如 <code>if_not_found="无数据"</code>)。</li>+ c1 t$ {4 t6 a
</ul>
8 Y& t, D8 w+ i. t' y</li>
4 W$ A( |) X) f& P# g$ n<li>
" W A5 B$ B9 f! _. G6 U<p><strong><code>#SPILL!</code> 错误的解决</strong></p>6 s; B: l1 V# N* u
<ul>
% ~# T: _: t* U6 `6 P: u<li>原因:溢出结果区域被其他单元格内容阻挡;</li>/ m( Q* S6 I/ ]3 U, P& t
<li>解决:清空目标区域下方/右侧的空白单元格,确保溢出空间充足。</li>
4 Q2 X& ?& q; }: h% [+ G</ul>$ F2 q/ v0 p0 v L
</li>2 C! h! o+ t2 u) ]7 _3 a
<li>; [0 C1 p! I" G6 u. z; `
<p><strong><code>lookup_array</code> 与 <code>return_array</code> 长度不一致</strong></p>3 a8 b. Z0 b# V( A
<ul> T3 U- m- W) V9 q* Z6 L
<li>报错:<code>#VALUE!</code>;</li>
2 w9 A1 A1 _" a$ a: Q3 V<li>解决:确保两个区域的<strong>行数/列数完全相同</strong>(如均为 4 行 1 列)。</li>3 m$ f4 j/ E, x8 z% q% x
</ul>
1 n# w/ ]) b5 u$ t# f</li>0 l2 |- \/ d' ~. ~; `
<li>
& L; m+ e" b4 U: F1 v6 }<p><strong>近似匹配的排序要求</strong></p>, `9 Y$ x1 R' S( V% _, M
<ul>
6 Z. [: x" h/ d& Y0 N; S% f<li><code>match_mode=1</code>(升序近似):<code>lookup_array</code> 必须升序排列;</li>
$ @. r/ T, N0 r$ P<li><code>match_mode=-1</code>(降序近似):<code>lookup_array</code> 必须降序排列;</li>
- w) s1 ~' @0 ^<li>否则会返回错误结果。</li>
9 S0 X. C8 I7 U" o$ ?$ d</ul>
8 k& W% w% V1 M( V/ j</li>
& `6 }7 L R0 F: P! M% w<li>0 W, a# X! f1 q! l
<p><strong>通配符的转义使用</strong></p>
3 Y) U4 A) M8 Z<ul>$ t+ F e R4 ~ [1 Y
<li>若需查找实际的 <code>*</code>/<code>?</code>,需在前面加转义符 <code>~</code>,例如查找 <code>A*</code> 需写 <code>A~*</code>。</li>/ \" z' F3 e" T4 I6 B( {
</ul>5 W) j3 L o1 }3 J
</li>
- x) g, S9 d% e& y4 @</ol>1 g; X. [. r. a& |" \
<h2>七、XLOOKUP 对比传统查找函数的优势</h2>3 R; c% M/ ~$ [ u
<table>
5 b+ W$ q. _2 Z# ?% |% |<thead>
; ?, f* [' j ?<tr>- y% a! ^; G2 q% W
<th>功能特性</th> x: D+ N5 ?( q. N2 O5 b5 ~; I3 E z- b
<th>XLOOKUP</th># {2 e" }- G" |% y; A
<th>VLOOKUP</th>
/ U o8 n( Y9 p: c% C7 `! L<th>HLOOKUP</th>
1 N0 {1 P! D9 c6 C" ]9 G; c<th>INDEX+MATCH</th>
" }& _# h6 w! _</tr>
: G a7 z* ]6 r; x* w8 Y1 e</thead>
" S% P1 m2 e# z& j6 x e<tbody>
/ z' [3 G" ^7 L, g" M<tr>( N- N; z4 Y- j+ y
<td>查找方向</td>, C/ K5 R4 d/ ]9 [! ]- |" k
<td>任意方向(行/列)</td>
& l2 Y" i: q; z0 ^( z$ Q. o<td>仅垂直(列)</td>6 g( G2 L! U3 q
<td>仅水平(行)</td>$ L; l: G$ M t; F$ I9 i
<td>任意方向</td>- p( [9 S: l' J/ e7 Z
</tr>/ O6 K. k$ _1 B5 v# b
<tr>
$ I/ H1 A& y8 S7 Y<td>反向查找</td>
+ S3 O4 L1 t3 v1 `7 z; N0 [<td>直接支持</td> E: x' J) j' y
<td>不支持(需调整数据源)</td>
1 \8 O W! e5 \! L, c) U<td>不支持</td>
! j& v, ?/ Q( G% @5 z9 ]0 J<td>支持(公式复杂)</td>
1 c: z4 }( u6 J- K! d S</tr>
) C% B; f( z; {: n, F% a<tr>9 X) A, m b6 H1 E. K+ j' S( X
<td>多条件查找</td> j2 g- v- ~ Y9 O
<td>支持(数组相乘)</td>6 n2 [2 ^( ^. K5 P- D. K, r+ r: n
<td>不支持</td>
2 h4 c7 N) a5 M2 l8 O<td>不支持</td>9 J( S! |. u7 q
<td>支持(公式复杂)</td>" N+ p& g$ ?6 K6 J# H! U! B
</tr>; D; s! G" P4 q: `3 Z
<tr>
) [( v( f* _ \& _<td>未找到默认值</td>: Q2 F" n3 ?' W
<td>内置参数</td>- g* F; M9 j' u) l1 d1 m
<td>需嵌套 IFERROR</td>
& c M: y& m0 c3 @0 `" M7 H! y<td>需嵌套 IFERROR</td>; k6 a8 S3 l; t
<td>需嵌套 IFERROR</td>" }7 C# N j! j: G# O
</tr>
- {# I2 `+ W, G) r R<tr>
: q3 c9 q1 R- J9 k<td>搜索方向</td>. b8 g' P1 C; y/ J$ X, i7 I
<td>支持从后往前</td>
. ?; U- Y: a5 T1 k' Z3 @<td>仅从前往后</td>
4 U, m7 A/ V+ U, e<td>仅从前往后</td>
. C! g3 G5 U+ v<td>支持(需复杂设置)</td>) p5 Q+ b' T7 M, O! b1 q% C) C
</tr>
$ \6 @7 S5 R0 Q$ T! t9 L# T0 f9 F<tr>9 q' d* J1 \1 V( d- ?
<td>通配符匹配</td>
' Q3 O& ?# M) I6 O<td>内置参数</td>5 Y) n) T) X2 ~7 Y
<td>支持(需手动设置)</td>- ~0 z$ [) b9 O9 V; }9 o" U
<td>支持(需手动设置)</td>. R/ S# k: u' O ^
<td>支持(需手动设置)</td>
+ u* O& J) u5 R( }</tr>
1 X$ g( ^0 R* ^. o% h</tbody>' c! G% z& z1 L; K
</table>
' h7 B# J, D. {, D( ^# k6 D1 a2 t- v |
-
温馨提示:
本文《Excel任意方向查找、反向查找、多条件查找、自定义默认值--XLOOKUP函数》由: 打工日常 发表于 2026-1-9 10:09
原文链接:https://jiangmen.pro/thread-129-1-1.html
- 1、本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2、本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3、本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4、未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5、匠们网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6、下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7、本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
- 8、该内容可能包含由AI辅助创作,请仔细甄别。
|