<p><img src="data/attachment/forum/202601/09/095116xnkk43ysdlmsyymy.webp" alt="141d455481b03db.webp" title="PIVOTBY函数-Excel函数教程" /></p>
s4 N4 B: j# E u. X; z* b! ^<p><code>PIVOTBY</code> 是 <strong>Excel 365/2021 及后续版本</strong>新增的<strong>动态数组函数</strong>,用于快速创建<strong>动态透视表</strong>,无需手动插入传统数据透视表,直接通过公式生成可自动溢出的透视结果,支持灵活的行列分组、聚合计算与筛选。相比传统透视表,<code>PIVOTBY</code> 更轻量化,可与其他函数嵌套使用。</p>! \9 y& K) A2 p0 y
<h2>一、函数核心语法与参数说明</h2>
3 r& ~2 @" s6 e1 p<h3>1. 完整语法</h3>
+ z3 X8 ?1 s' T0 k2 |- ?<pre><code class="language-excel">PIVOTBY(rows, cols, values, [agg], [row_total], [col_total], [filter_array], [drop_empty])# b: h% Q: r8 Q, S7 a8 [
</code></pre>: p3 \# T' y3 i. h' J4 X7 y4 M
<h3>2. 参数逐义解析</h3>
+ A2 G4 D' G5 J% ^$ _<table>
% p1 d# p/ Y( P; T<thead>$ H- P8 `7 }/ k: ~7 ^+ c
<tr>
8 d" y+ v0 ]9 P0 W% l4 Z7 d( }<th>参数名</th>. x8 u8 H- l2 x
<th>必选/可选</th>" }' j7 I; n: M ^' t; z. \
<th>数据类型</th>
5 h4 ^- V* J. s2 {<th>核心作用</th>
5 s/ M" s0 y- m! g<th>注意事项</th>& H- W, c" }$ M& o/ P
</tr>0 v: |8 h. c3 t$ Q& T* \4 b
</thead>, t$ G( s' v7 i! p
<tbody># ?) C: [6 i% N4 C3 C
<tr>& l" B/ l5 Q' o8 H3 A6 e. S6 |- h
<td><code>rows</code></td>: n k: V- c+ ^( A) f' }4 k
<td>必选</td>% q( u" x8 ?3 Q2 s/ h$ t3 I
<td>单元格区域/数组</td>7 Q& v& }% C- x6 t1 ^
<td><strong>行标签数据源</strong>:用于分组的行维度字段(可单字段/多字段)</td>
) q( H$ J+ D( i( g, h" z<td>多字段需用 <code>HSTACK</code> 合并,如 <code>HSTACK(部门, 季度)</code></td>9 D; ` p6 O+ \% O+ u% B* o' Y
</tr>
) t" a. ^. \* {6 ^5 Z<tr>+ k6 S9 ]9 d6 t4 W; o. _
<td><code>cols</code></td># Y! \. Q' h$ o$ G) a, ~8 y1 Z
<td>必选</td>
) u/ r, _1 ]# F% q: U3 c' A<td>单元格区域/数组</td>
: [( X1 {6 V4 d& C% d+ _# M<td><strong>列标签数据源</strong>:用于分组的列维度字段(可单字段/多字段)</td>
% z. d. Z, N7 V3 V r: s `<td>多字段需用 <code>HSTACK</code> 合并,支持空值(<code>""</code>)表示无列分组</td>
* Z: f% f9 i* ?6 |3 _7 B3 i</tr>
4 B4 ]2 A' h7 q7 G) ^' E: p<tr>1 `+ K0 n3 b `0 U8 U
<td><code>values</code></td>1 j A6 }4 C: G
<td>必选</td>% @ d& e I& d. ?3 l! A
<td>单元格区域/数组</td>
/ V: h A% o3 P5 w: [<td><strong>值区域数据源</strong>:需要聚合计算的数值字段</td>
6 N+ l' t: H) m( T( Z- }; x7 c<td>区域行数必须与 <code>rows</code>/<code>cols</code> 完全一致</td>
* X, P) p2 `, a" N) |& @( p</tr>
6 M: \. U) T+ y5 t<tr>
; ~3 x4 b+ _' K4 r0 H& F<td><code>[agg]</code></td> ?* v: M" w i) s7 h# L' V
<td>可选</td>
2 w7 I/ i% B; d) d; r2 z<td>文本/函数</td>( l0 p: _8 \9 B0 K
<td><strong>聚合方式</strong>:默认 <code>SUM</code>,支持内置函数或自定义 <code>LAMBDA</code> 函数</td>$ m% \* ^# t! w+ J; L( R# M
<td>内置值:<code>SUM/COUNT/COUNTA/AVERAGE/MIN/MAX/MEDIAN</code> 等</td>
+ m8 C; Z& O6 n& S2 K8 G</tr>
+ _; o; k1 p+ B<tr>
8 f# l$ T% @& G/ G7 U) L<td><code>[row_total]</code></td>
- ?; O$ J7 e0 H<td>可选</td>& K q& B' S% q
<td>逻辑值/文本</td>
" l& O- m7 [7 f- A<td><strong>行总计开关</strong>:是否添加行总计行</td>
# O# y+ h! U4 U: R<td><code>TRUE</code>=显示总计(默认名称“总计”);<code>"自定义名称"</code>=自定义总计标题;<code>FALSE</code>=不显示</td>
( i6 @1 ~5 Y; r _. o- u</tr>2 d$ S9 b% i, \! Y) l4 ]
<tr>1 h/ L' ^' a6 O# E7 e
<td><code>[col_total]</code></td>
' s( N" o! k9 B' B" r8 a& v. y<td>可选</td>
: `2 v, G; e6 q: O% j4 Q<td>逻辑值/文本</td> Y- B5 I8 x1 [; ~$ H
<td><strong>列总计开关</strong>:是否添加列总计列</td>
" C; _! g# Z* U2 c3 W<td>规则同 <code>row_total</code></td> Z' q0 y: [7 z U# U6 H
</tr>4 @# j4 t5 J$ y/ b2 g1 o) d
<tr>
/ e9 o4 N# s5 n% ]<td><code>[filter_array]</code></td>& N4 N v& q4 u2 e2 l
<td>可选</td>; [' h) q6 h: |; E# n
<td>布尔数组</td>, `; m1 G3 t0 x/ F" Q
<td><strong>筛选条件</strong>:按行筛选数据源,仅保留 <code>TRUE</code> 对应的行</td>2 ~$ y8 r: U, z0 C9 `8 n
<td>数组行数必须与数据源一致,可结合 <code>FILTER</code> 函数生成筛选条件</td>9 G# n5 k9 E9 A3 \) Y# u1 L
</tr>
^7 y2 z/ s- I2 f1 g<tr>! L' d% Q6 ~9 K! u `
<td><code>[drop_empty]</code></td>, X+ \' R6 v; @+ t
<td>可选</td>
C- i( m% P$ d3 c<td>逻辑值</td>
, c# x3 p; }+ `. O. v4 m9 Y6 o<td><strong>空值过滤</strong>:是否删除无数据的行/列</td>
3 B1 M0 |+ l, `3 F<td><code>TRUE</code>=删除空行列(默认);<code>FALSE</code>=保留空行列</td>
7 y# g! t( \1 m n/ Q% R! _: R</tr>/ m- f7 ]: M( j' V
</tbody>
$ ~" R' p7 R& g1 Y& A1 }</table>3 Z+ u2 l) A' J; @3 W
<h3>3. 关键特性</h3>
: k! n' U0 j+ ?* D- H<ul>+ R0 g0 s4 i( K' n8 ]6 M( A
<li><strong>动态溢出</strong>:公式输入后自动向下、向右溢出结果,无需手动拖拽填充。</li>
' u! K% W, G* ~! B4 f, s) A<li><strong>自动更新</strong>:数据源变化时,结果实时刷新(需开启 Excel 自动计算)。</li>
C( d) N5 Q! w<li><strong>兼容性</strong>:仅支持 Excel 365/2021 及以上版本,低版本需用传统透视表替代。</li>
`8 S+ i- A! Q, [% D% S% q</ul>- U: Q6 \# D2 L2 b+ S; e. `: c
<h2>二、数据源准备(通用示例数据)</h2>
; S! `. S$ v7 i$ @& Z6 R0 {<p>为统一示例,使用<strong>销售数据表</strong>作为基础数据源,共 6 行数据:</p>
7 g2 G8 m1 e0 e: P2 ~; n9 m& Z+ d<table># B5 ]/ e' H( \9 f& L6 }* l0 e* j
<thead>+ ?, D. j' o# L4 u
<tr>+ s) G& o+ D0 J0 b* n
<th>单元格区域</th>/ q, N1 v9 U+ g! P9 T( D& t
<th>A (部门)</th>
- R6 h3 S. U* ~9 T" Z3 B3 e<th>B (季度)</th>0 D8 j$ P4 G" g1 _9 K& m
<th>C (销售额)</th>& g+ t9 I f$ B6 ]# l/ p4 r1 V- P
<th>D (利润)</th>: {8 L& p0 F B. K ~- c
</tr>
: P) V) ^2 u& f0 d</thead>( U3 R& R$ s! I8 _+ M9 K3 z
<tbody>
* S% F! X- L1 s0 J( x2 V<tr>! j) E9 b* ]! g( A% {& I
<td>1</td>
4 A! }1 M4 ^+ N<td>销售部</td>7 Y, e; T5 u' D) a5 G. p N
<td>Q1</td>; G' n: ], `6 b& k5 I
<td>10000</td>
& f8 _0 A' E- M8 N; T, k<td>2000</td># q8 k& ~1 T0 t. d! L" N# m
</tr>
, A/ g' E- i% e- r; H- O$ x7 _<tr>
! q+ {- |* |, G1 a0 |; O<td>2</td>
" z7 e8 J$ s* Z1 N% ^1 S* y$ l: f<td>销售部</td>- a; s' c' [# W) c2 U
<td>Q2</td># T" f3 L$ R' r- K0 C* H
<td>12000</td>& h& E( E9 S" C0 D3 A- x
<td>2500</td>
2 E m p/ M V( c% m" x4 t</tr>
- I: R9 h2 y$ v, z<tr>
. e: V' J( s( y! R5 p<td>3</td>
" j; Q( a/ I' y7 N<td>技术部</td>
: C! s$ O9 p Q2 @: L- G, }<td>Q1</td>
: C% Q6 _) P) @4 {& r<td>8000</td>4 [0 J# e# r/ \' t1 k# g W
<td>1500</td>7 V# n/ G. V& [4 _; l
</tr>
1 X. W; g( [$ m2 p<tr>4 Y/ k+ ~( P8 y) D# k& }6 }
<td>4</td>9 ^$ S @1 U! a# F+ A2 D
<td>技术部</td>
8 P# Q' P; E% d' Z<td>Q2</td>0 o6 B4 u2 w. b3 R t& i7 k
<td>9000</td>1 M1 n6 M: n: l; d! L
<td>1800</td>
/ W$ `8 p3 D W& m5 T$ X$ ^2 n( O</tr>
; B9 L& H' t7 }! m0 q+ g<tr>2 V' Y' d3 E7 d2 g- n3 Q
<td>5</td>" D& |$ ]" Z# R. Q/ y5 |& x
<td>市场部</td>2 v7 m: b8 A' {0 ~: T, \. J6 q
<td>Q1</td>
4 E L: h5 W) O- \<td>5000</td>0 ^, j% c. ~! Q
<td>1000</td>
) m" ]' m C9 W0 Q+ i6 l</tr>( p+ }: E! O6 W2 P, N/ q9 s
<tr>
. m5 \$ V7 K F8 m* V( F<td>6</td>- ^) Q. b& c! D6 T: Z! |
<td>市场部</td>
# F3 J* b0 ]6 F1 S( l! C<td>Q2</td>" ~5 E* p# G/ Q% |7 a4 K4 k
<td>2000</td>' l, D/ R: v0 k+ z% W$ m
<td>300</td>: G' V7 Q( `7 _& S& h
</tr>
: N; ?& B% U" P: ~6 e* v3 P" g8 ~1 |</tbody>
& i% M2 c: y0 ~' _2 _; |</table>. `' D3 k3 N+ L! ?+ s
<p>后续所有示例均基于此表,数据区域记为 <code>A1:D6</code>。</p>7 ~) Z9 W1 P2 s" J c( [( y5 c# S
<h2>三、初级用法:基础单维度透视</h2>7 K3 B$ J; ^! T4 y5 g
<h3>场景1:单一行标签 + 单一列标签 + 单值聚合</h3>8 }% e# k& m+ h6 q) f
<p><strong>需求</strong>:按「部门」分组(行),按「季度」分组(列),统计<strong>销售额总和</strong>。</p>
9 l4 v B: z! h" F& A<h4>公式编写</h4>
: ^* ~$ l1 o! k* z# s8 ]7 Z5 m1 t! `<pre><code class="language-excel">=PIVOTBY(A2:A6, B2:B6, C2:C6, "SUM")2 j! m+ T }6 N6 B' r4 M! w
</code></pre>: Y7 L9 A% ?* k- R( C- c$ G+ H
<h4>参数对应说明</h4>+ S* `" f* m- v! [1 |# b( m3 ^
<table>4 G, o- A1 y, E5 |4 h9 P
<thead>7 s- U# h [& G0 _# S# _, Y$ `
<tr>6 \; ~: F; W& w# v6 Z3 q0 e" ^+ C3 f
<th>参数</th>
3 x- T- S7 N! p7 b/ B+ H<th>取值</th>
9 B$ F5 ]; E+ s<th>作用</th>; H: Q& t7 r- x$ V& j+ c3 I
</tr>4 ]" u. W2 H' S: A$ z
</thead>/ y/ ?% H H% F! r' U/ e. \
<tbody>
8 s e9 H3 X% l<tr>6 i, Z8 v5 x# b5 |2 ]! R# }. k
<td><code>rows</code></td>
; i( a9 A M' i, B$ ^/ N; i; V<td><code>A2:A6</code></td>8 _2 u# S' A- q K
<td>行标签:部门(销售部/技术部/市场部)</td>. {4 ? p2 s! d& e& O6 i* K A
</tr>
# X1 B& i* o- X$ e3 A. T2 c<tr>
; i: f" [5 v6 X; \5 ]2 G2 t8 p+ l+ o<td><code>cols</code></td> t1 f4 K' \4 @4 P% Q
<td><code>B2:B6</code></td>8 p3 g0 |5 N* @/ F$ _+ ?4 d
<td>列标签:季度(Q1/Q2)</td>6 ~$ }1 K2 D" B+ [" [! m9 I, Z
</tr>
+ p* m7 m+ r! H! J( n# W<tr>
J- A" ~3 r+ m# c<td><code>values</code></td>4 O1 O; E; D" ]5 V+ `
<td><code>C2:C6</code></td>3 Z% m( k% J2 P' h" R# ~
<td>值区域:销售额</td>
2 f3 W X: o1 y0 o+ w- K/ l3 L- ?</tr>( z [! O! K. [. A" H$ p1 Q. J
<tr>0 R) X4 r- N; q ^
<td><code>[agg]</code></td> W, F# H6 e$ P u
<td><code>"SUM"</code></td>
& E0 t5 `$ a* n4 z Y' M8 ~* x$ u<td>聚合方式:求和(默认可省略)</td> R- o/ {9 B- W1 G9 x( `& ?
</tr>, D) E; \+ y" ~+ y2 k) i+ Z
</tbody>
. l, D5 v7 p$ @, z</table>
6 {- p8 W; t9 K* E<h4>溢出结果</h4>7 a2 s- F. Q3 O/ r. U6 v2 h
<table>
6 O$ G$ W9 Q, B- K1 t3 F& \<thead>0 v5 C( n z6 B, e3 e
<tr>6 K$ d+ M: G$ w+ n& A6 W
<th></th>: ?" O+ ?( g ]) I
<th>Q1</th>
" Y, j9 d* b; V2 L<th>Q2</th>
8 Z1 C8 Y2 u5 O. d</tr>; p. `. W S, q! z
</thead>
. {8 l l) p! H<tbody>, O! L& ?2 K) R3 s6 H9 ]
<tr>; ~& }2 A$ i; I* ?9 @( C6 j
<td>销售部</td>9 t1 C8 c# T: _6 G) y Q9 Z8 b' Y
<td>10000</td>
- K* m7 t" P' U<td>12000</td>- Q; q9 I* D& S. u Z
</tr>
+ c! k% q/ b/ t: R+ y1 r! J. W3 X<tr>& o2 G4 T6 A6 Q5 x/ g
<td>技术部</td>1 p! M; v, C" G% L0 X3 T( \4 k
<td>8000</td>
/ w$ S& B6 k) B4 o: U9 S6 t<td>9000</td>
; {7 C* Q" x# t& |! q</tr>
( _3 O) Y( v$ P% o: x' |3 `. V3 o<tr>
, ?3 X+ t# Q0 R: c, O9 a<td>市场部</td>
$ c8 j* b3 x4 Y* {<td>5000</td>; i2 C6 _; H! W" g/ _& z2 X9 F
<td>2000</td>, R/ n7 O% v6 Y; R/ i0 {4 s4 H
</tr>* W$ T! F2 E7 D" z. A% z
</tbody>, v y& n( X+ K: W* _+ W$ K4 V
</table>
% ~; |$ P6 _( z- f" |( J<h3>场景2:无列标签(仅行维度聚合)</h3>
. o' |- K q3 |) G4 l<p><strong>需求</strong>:按「部门」分组,统计<strong>总销售额</strong>,不按列拆分。</p>
0 C6 n5 v% k( O, f& `* R<h4>公式编写</h4>2 V# U. X9 a0 e8 n6 J# M" f) o6 m
<pre><code class="language-excel">=PIVOTBY(A2:A6, "", C2:C6)' g$ v4 v" O9 c Q5 ^9 P
</code></pre>
8 z. h @8 |: A3 {7 D<h4>关键参数:<code>cols=""</code></h4>
% G( N- ?1 ^( t/ z. V3 F6 S<p>表示不设置列标签,结果仅输出「行标签+聚合值」两列。</p>
1 h7 m8 e. R2 v' b7 k8 U: ~<h4>溢出结果</h4>
$ s8 a, V, q' I4 n<table>
* M1 k" c+ O, y3 @3 c) e1 x<thead>
: ]' ^; @2 b: G: f0 D6 w/ Z<tr>
. ~* @1 w2 Z- C1 F W8 i4 Q<th></th>: }2 Q- J% U5 {6 J. \
<th>销售额</th>. U1 s2 J$ I& p6 o7 ?# j8 s
</tr>8 F( X+ c/ H9 I$ [
</thead>, p6 F4 d& w4 |$ [
<tbody>
, O9 t' u& @6 S* A) V7 T G<tr>% A! Y, {& W5 K. k
<td>销售部</td>' T1 l; C+ W4 i6 e* T. m
<td>22000</td>. F7 J' l0 S T' @, c, B
</tr>; l9 l$ ~* c5 a; i% y3 c: F) l
<tr>
& S3 k8 u# C0 |<td>技术部</td>
/ p, p* ?2 ~; W8 [- X# _# `<td>17000</td>5 |/ @* [3 j% n/ v' M+ V% K% s+ G3 z' t" D
</tr>6 a0 N% b; {% t! a5 Q* u& E
<tr>
. a( g. L) V8 e8 u2 o<td>市场部</td>; g0 f# x$ V+ ^& N
<td>7000</td>
2 U9 A/ v+ q# ^$ Q/ W</tr>, X S3 z6 k4 i+ P# Z
</tbody>7 f: O% y( l; ?: |" h V* I
</table>
$ X, \5 P6 L$ X& C<h2>四、中级用法:多维度分组与总计配置</h2>1 B: t/ ]4 O g) W" F1 y/ a
<h3>场景1:多行/多列标签 + 多值聚合</h3>
$ i' I! B/ @# I<p><strong>需求</strong>:按「部门+季度」双行标签,无列标签,同时统计<strong>销售额总和</strong>和<strong>利润总和</strong>。</p>
( a d2 L" M1 U; @0 z. z<h4>公式编写</h4>
. p, Q# S4 k3 e# n<pre><code class="language-excel">=PIVOTBY(HSTACK(A2:A6, B2:B6), "", HSTACK(C2:C6, D2:D6), "SUM")1 U8 x6 B: r) O$ V3 V M
</code></pre>
, V; S# ] S) y1 q" D<h4>参数核心技巧</h4>0 d4 P( j& v+ B# V
<ul>
2 n% N2 F9 x: c6 b<li><code>rows</code> 用 <code>HSTACK(部门, 季度)</code> 实现<strong>多行标签</strong>;</li>
9 J/ J) U$ e( J. [0 M<li><code>values</code> 用 <code>HSTACK(销售额, 利润)</code> 实现<strong>多值聚合</strong>;</li>
8 `5 y0 ^9 I" x<li>聚合方式 <code>SUM</code> 同时作用于两个值字段。</li># A$ h: n7 B. I, I6 \
</ul>
. S' ], b( w" W$ O1 u' r8 G- ]6 t9 U<h4>溢出结果</h4>
' M( w9 o. M! c: S! G& F r<table>
% K2 b. y% k X<thead>4 B/ V8 H! V) c0 c2 u
<tr>5 p; m1 R5 a: u1 {6 F
<th></th>5 u+ o& V* Z+ F& c/ e" U! K4 C2 O. e6 t
<th></th>0 a. R* E7 Q* k: o' l. q) b
<th>销售额</th>
! J- ]3 J* B- M( h9 C<th>利润</th>+ W* a# o( N2 M/ e4 H
</tr>
( W. K5 P! j2 e5 U* ^</thead>
- X5 C1 B4 A; [5 k<tbody>$ V- D8 P9 O- p( j( O! P1 ~
<tr>) R7 A1 `/ i5 d# z9 }: O
<td>销售部</td>" [. A( t* Q& r$ ~: K7 x) b
<td>Q1</td>
0 W6 l2 Q' f$ e0 ?) Z) D<td>10000</td>
* t5 o) E9 m/ U# X' F! o* v, m<td>2000</td>8 j* J- o7 i; z- ~8 R8 d2 h+ B* C
</tr>& q- _ N! J+ b6 B K: J" ^, P
<tr>. X0 k' b; k* F; l0 u% u
<td>销售部</td>
5 @/ ?: ?7 \; s! h3 J. [<td>Q2</td>, t" }1 ^5 |0 x+ A W
<td>12000</td>4 J$ b0 H$ {3 {3 H [
<td>2500</td>
1 F3 R7 G1 u" K# h/ s; B</tr>& ], u% I2 O7 Y: b+ x# }" s
<tr>$ t( `* R5 I. k
<td>技术部</td>- |6 {) e' [ {# p; s1 _* ]* L6 u
<td>Q1</td>3 W; y6 ?8 t) J4 \; C& Z2 K1 F& K9 d
<td>8000</td>/ _1 }/ q) Y2 p c
<td>1500</td>; W8 u F( A3 z: m. R5 x+ }
</tr>
# K3 p5 C! l2 e; r( P- E0 y<tr>; Z5 C: v! p% |: U9 U2 B0 V$ f' g
<td>技术部</td>
5 r. \4 }, s6 c<td>Q2</td>
- n/ M% r, A8 O, ]) F5 W<td>9000</td>$ V0 V j; N' I) O: ]: [% d7 P
<td>1800</td>) R: A+ c. T/ j
</tr>( b3 w, b; r, Y8 ~
<tr> x+ m1 o% b/ Q
<td>市场部</td>
( P3 u# G# V# W8 Y<td>Q1</td>
: l& P7 {/ K" V<td>5000</td>7 n4 R; u3 P+ G% l$ R6 r4 ^6 N3 U
<td>1000</td>
& o0 I* Y5 J$ |! Y/ {</tr>
/ z; r, J7 M$ u4 Z; O1 ~( T<tr>
+ M( ]* C3 ?" f& O1 T! T<td>市场部</td>. g6 a4 M3 Z1 g4 U' ?
<td>Q2</td>
5 G$ z. U0 T+ h( X<td>2000</td>
! o+ Y. x/ X4 I$ `<td>300</td>$ {; u2 Z$ J; b
</tr>
9 z; S2 M9 ]# j2 k</tbody>. y) Z9 c% q% F2 E0 C8 S6 q- l
</table>/ w7 Y4 A( ] X* Z, }1 p
<h3>场景2:添加行/列总计</h3>
6 Q) b6 o7 s& U0 i8 x<p><strong>需求</strong>:按「部门」行标签、「季度」列标签统计销售额,同时显示<strong>行总计</strong>和<strong>列总计</strong>,自定义总计名称为「合计」。</p>- _( z# E; i( ?8 z% @0 S' a" u
<h4>公式编写</h4>$ U$ h) E& q4 ~$ K8 n' a
<pre><code class="language-excel">=PIVOTBY(A2:A6, B2:B6, C2:C6, "SUM", "合计", "合计")
1 I7 d9 x. D2 O$ y+ W) m</code></pre>
; m# T: a: U: F7 W3 ?7 `<h4>参数说明</h4>% j) G$ p% e$ k) i' \+ w
<ul>
: g \& f3 ]+ H4 I" e7 N8 O<li><code>row_total="合计"</code>:行总计标题为「合计」;</li>
4 g" R6 j! _1 M# j. D4 p* k* _<li><code>col_total="合计"</code>:列总计标题为「合计」。</li>
, Z& w* d0 a) }0 }7 }" b V# A# ~( _</ul>. |4 k g ^: `( y5 y( n0 O
<h4>溢出结果</h4>
+ U/ l8 ~2 n( B/ V8 K: `<table>0 z1 ^7 K; v, C$ B& D0 E
<thead>) |, t5 z/ c& G. u
<tr>2 A& C; {: i- V# O7 O$ k3 o
<th></th>
" N, ~8 a, U, W: {0 {- Y1 c9 R<th>Q1</th>* l" A* P5 {' J2 W% h( P+ F
<th>Q2</th># [2 V0 C y1 m4 H
<th>合计</th>
7 g# N3 r+ E. ^7 r c5 k! k</tr>5 d1 ^4 M: y) G- \7 i+ c' y9 B
</thead>% l1 g, ?4 r; a+ e% P9 C
<tbody>
* m. |1 }( B9 P! V) M' n<tr>
) L" H) Q6 t: @3 |7 L ~) F<td>销售部</td>
0 v4 r8 r; h- G0 V- @6 ^8 ~<td>10000</td>
" o. q) \5 E7 A' h$ {! K k<td>12000</td>
3 X( H: x* k2 T$ E0 Z$ F<td>22000</td># r8 a! U, J1 Q4 X2 r, O7 ~
</tr>
5 U- v, f1 ]) G7 Q0 @% C<tr>, L4 l3 ?+ ]7 |
<td>技术部</td>
, S& Q0 |' o. w7 H; I c( n8 p<td>8000</td>
4 C2 ]. T. ^+ v" T. j7 @+ o; q<td>9000</td>/ F n$ k# e5 Y+ R ]) v% \2 R* ?
<td>17000</td>" s3 _- x2 {* N6 B# B' a9 ?
</tr>7 l9 ]8 q8 C2 p7 B1 Y9 d7 G$ k
<tr>
: g4 E. \7 K6 f& V1 q. B0 R<td>市场部</td>
5 Z1 r( A$ m' O+ E6 q<td>5000</td>
. l: j( |$ f) n<td>2000</td>" O9 R# v" Y O% `
<td>7000</td> e) X4 Y8 \! v: E9 C1 ~) N
</tr>$ u: h8 j$ b! L [) n- l+ \" f
<tr>' m9 L# v) V9 s
<td>合计</td>
5 ~' V4 \$ S- H8 e1 u* _<td>23000</td>
+ D! K- v f) }+ Y* F<td>23000</td>
/ N/ G5 E7 R& o* E R- [<td>46000</td>
9 T, j) V+ D, k( \* D6 E9 {</tr>
* p! \9 G0 ~" A7 n) G, W* ~</tbody>
9 ~( I" |8 `* a- B3 _</table>
. M& M0 F& z& x% U' g C<h3>场景3:保留空行列(<code>drop_empty=FALSE</code>)</h3>; r' }- ]0 I& z" D# M
<p><strong>需求</strong>:若数据源存在无数据的分组(如“市场部 Q3”),保留空行显示。</p>' E2 {2 {6 o! C* v9 _. q/ `9 Q# E
<h4>扩展数据源</h4>
8 s+ p+ k; x; j4 d<p>在原数据后添加一行:<code>A7=市场部, B7=Q3, C7=""</code>(销售额为空)。</p>8 W7 s J( G: Y1 G
<h4>公式编写</h4>
" @1 |- o, d: V V$ z% I<pre><code class="language-excel">=PIVOTBY(A2:A7, B2:B7, C2:C7, "SUM", , , , FALSE): h [7 I8 w& N& A4 T- j
</code></pre>
- ?+ u: G% c) `& d9 B s<h4>关键参数:<code>drop_empty=FALSE</code></h4>
7 t; J" l6 J$ s/ w<p>强制保留无数据的行列,空值显示为 <code>0</code>。</p>
& R+ x" l2 V2 s3 @& {* E<h4>溢出结果(新增Q3列)</h4>
! h j. F8 O6 a2 m# V* h<table>, j; k7 z: b: u8 \/ o, |7 D' Y9 O
<thead>
# w3 _ u5 T! j& _+ V<tr>! q8 e% c" x8 L) H2 x
<th></th>
9 g4 P8 p0 ^* C" b A$ h8 x6 a/ X<th>Q1</th>* D$ E5 Q5 v6 A# j1 ^
<th>Q2</th>
9 j% M& x! d0 \9 K. D3 h<th>Q3</th>1 b& p" R7 c7 d. u
</tr>) p% }/ k0 k& Z5 T
</thead>6 G" p' \/ R- |8 `" D
<tbody>5 U* s& U8 Q! T/ d( ?( k7 B
<tr>& f8 @2 p( I' c" K$ X; b+ N
<td>销售部</td>' n/ Z5 Y' W6 U8 \* J* O% n+ c
<td>10000</td>
% D' A/ O% c% H: A0 _ q/ r<td>12000</td>; F% R" j6 Z: M; Q7 M
<td>0</td>+ M# q1 Z$ U4 T2 Q" L- K% }
</tr>
# A; Y& {) _! V7 c<tr>
; ~: o4 Q" R9 L. S. @. h. r<td>技术部</td>2 [, W9 Y- q+ l, m9 `' d
<td>8000</td>3 s, s! Y+ |$ Y1 S" ~) m
<td>9000</td>" k& R b' o1 _+ T& n( ^. h
<td>0</td>
$ ~8 t; D( ~0 L</tr>& t! ]% f! m5 y; x! V4 M5 ^& N' S
<tr>
9 F# m. b0 _3 P$ B" u<td>市场部</td>
A" U- V, x0 U% a/ ]" B<td>5000</td>
1 e, h' b+ |/ x9 L5 t" K<td>2000</td>, b4 u- ]' M4 S- B) E5 d$ H
<td>0</td>* K0 y1 z( A$ Y& W$ h
</tr>9 T3 m- P' X: P9 L4 L
</tbody>' q* o- Z M v$ ]. o9 V0 X
</table>
1 @$ H/ C, P/ x. p5 E# I<h2>五、高级用法:筛选、自定义聚合与函数嵌套</h2>
# h5 M& G# Q6 E+ I, a<h3>场景1:结合筛选条件(<code>filter_array</code>)</h3>3 Z4 [6 T9 T [
<p><strong>需求</strong>:仅统计<strong>销售额>6000</strong>的记录,按部门和季度透视销售额总和。</p>
8 u& P% X( d Z: `* r8 V& n<h4>公式编写</h4>: \" R. z3 h5 D/ _9 L) s
<pre><code class="language-excel">=PIVOTBY(A2:A6, B2:B6, C2:C6, "SUM", , , C2:C6>6000)
/ @+ ^, ?" a n" I0 ~' }</code></pre>: q8 k- K. g0 L+ l
<h4>参数核心:<code>filter_array=C2:C6>6000</code></h4>, {' H' C! T# ]7 z. i& O. u4 Q
<ul>. I4 O! ]! `- b" H, C3 w& [* x
<li>生成布尔数组:<code>{TRUE,TRUE,TRUE,TRUE,FALSE,FALSE}</code>;</li>
. m7 ?9 F# b5 `9 A, X- S" y<li>仅保留数组中 <code>TRUE</code> 对应的行(即销售额>6000的记录)。</li>, Y; G6 J) y0 w# k+ @$ E
</ul>1 f& G* s; o. Y
<h4>筛选后数据源(实际参与计算的行)</h4>" r, n$ d0 A- W
<table>
; M+ h( n. g* F<thead>
: {2 z4 y2 v4 e8 j5 {0 D5 ]* T<tr>: O0 Q r4 }* J7 j% L
<th>部门</th>( A) F: Y( v7 j7 W; g
<th>季度</th>
: Q( i7 Y; ~# a) ]0 Z<th>销售额</th>
% c% S/ O) r W- C" n</tr>
, M; @! U& y- |" M. T, J* i</thead>
( H3 ^* g5 W& S& w; s) ~5 \<tbody>
1 @, Y; l5 j7 g7 E' Z s<tr>5 {4 z; x/ n- a- u" p* Z
<td>销售部</td>
; j {5 d8 p2 g9 @<td>Q1</td>5 C6 J& K8 s `. h) s2 `
<td>10000</td>0 N2 x. C# N3 U' ], C. c2 p
</tr>
5 [- w, U6 g B7 Q; g a; I2 n: T8 \+ N<tr>
$ D4 b5 b* X& m7 O }<td>销售部</td># k2 v9 k9 v$ d% _' d
<td>Q2</td>$ F7 n4 ~& [9 i! S; U+ E+ `
<td>12000</td>! Y4 X4 T% ], g, q3 ]
</tr>5 ^0 q8 [( s/ u' G8 z+ N$ S# h
<tr>4 v! S% Z+ t P+ @( ?% t
<td>技术部</td>1 [. a: T, F: h6 a6 j7 ^0 M7 l+ x( }
<td>Q1</td>
7 [) n9 }, J$ h( [1 j* k<td>8000</td>. f( J0 }1 D5 ]5 g! H8 i% s( U
</tr>0 J- s+ ]. s( D5 D3 w. e# K5 B
<tr>, r, w& Z8 O1 x1 x" |" R
<td>技术部</td>
7 H7 T* V: j+ t<td>Q2</td>
' {& M @ M' _+ u/ Z* l<td>9000</td>3 K2 n" w4 g! v7 u0 G
</tr>; q* W0 M6 T: E# l" j9 @
</tbody>
: r- K s$ o: E- m3 }- Q+ v</table>
# I& j( e: B/ X; A$ B<h4>最终溢出结果</h4>
* F |0 x" J3 _( k! W<table>
9 i% D, w" m0 \$ d( o' d0 F$ n<thead>! k/ t8 g1 O4 s7 q* b4 E
<tr>: U/ D: D- z$ D* A# r/ d0 J5 L r
<th></th>9 R. e/ z5 @+ w; Q% W1 ^: Z
<th>Q1</th>, x4 U( L4 S% P, |9 {* W
<th>Q2</th>+ ]6 w& U+ k! V7 t
</tr>' z0 ]( h: ]9 U" b+ c
</thead>: A9 U7 q/ E0 w
<tbody>
8 O; t4 O1 o: s8 `2 _+ ~2 ~0 |<tr>
$ Y9 n' h& s3 f4 \1 L4 Z: l<td>销售部</td>
5 i3 T; u& |( f0 w$ O$ a" ?9 S<td>10000</td>3 q5 L" g* o7 L) h9 X
<td>12000</td># Z8 P) C) J& V. |; N! d8 |
</tr>/ t. c! k& F; c6 w! }
<tr>
0 \( s8 L/ @) g2 S7 N/ e9 z/ F<td>技术部</td>
0 W+ D0 D" l2 Y<td>8000</td>+ @7 w- ]& c" f/ U) u3 |
<td>9000</td>: X1 D# `( ]3 Y( U6 n- D& u4 {
</tr>
% @0 i- J: d0 @</tbody>) x1 @( `' V2 U9 L- R# \
</table>/ r- q; w: e" e8 E
<h3>场景2:自定义聚合函数(<code>LAMBDA</code> 实现非内置计算)</h3>7 r9 ^2 H; {) r
<p><strong>需求</strong>:按部门分组,计算<strong>销售额的标准差</strong>(内置聚合无此函数,需自定义)。</p>: H K4 u$ ?+ X5 e
<h4>公式编写</h4>
4 w1 ]* m0 m: f( s% _<pre><code class="language-excel">=PIVOTBY(A2:A6, "", C2:C6, LAMBDA(x, STDEV.S(x)))
* [) Y; s+ @' C; }/ ]% J$ \5 `</code></pre>1 n; j9 c& D& {9 d% }
<h4>参数核心:<code>agg=LAMBDA(x, STDEV.S(x))</code></h4>
1 L- ~1 S# F, k, |* U<ul>/ X; \+ z1 m$ o- b% G: k9 n* r
<li><code>x</code> 代表每个分组的数值集合(如销售部的 <code>{10000,12000}</code>);</li>! [0 m4 p7 ?; g& y& R
<li><code>STDEV.S(x)</code> 计算样本标准差,可替换为任意自定义逻辑(如 <code>MAX(x)-MIN(x)</code> 计算极差)。</li>& T7 u5 s: w, I/ h( U
</ul>
( f( G Z) t! h) _<h4>溢出结果</h4>0 E$ @7 o7 A* A" ~
<table>
, b3 n$ U' t+ j7 d1 W<thead>
$ m' F) T( e- W3 U$ i: k' u: y<tr>3 ^2 l$ | P6 I2 I, ~
<th></th>
1 S. w* x0 H6 I8 D* J# y<th>销售额标准差</th>6 a7 u* y% k6 x0 h& H' _) L# X
</tr>& m3 j3 b& F! [0 e9 u( X
</thead>; N9 h& p a' p5 h/ w
<tbody>
+ A# {$ @4 e+ V- }<tr>
: V0 j+ k& G* k7 e/ L3 `" J<td>销售部</td>! A! ~( ], d# }( W
<td>1414.21</td>( l& {( ~- w5 K3 i5 A. k
</tr>
( d) s& c( [# ?; \7 L1 i% H: D7 T" U<tr>
: c! h$ Y1 e: t8 Y+ N$ g4 ^+ {<td>技术部</td>
0 h6 Q, f4 [" P7 D2 L: F% G<td>707.11</td>+ @# J1 D" `% f- U0 D# v, b W0 k
</tr>' f% H, b' a& t& _7 s
<tr>
& ^, n* k- H/ J* C- g N. h<td>市场部</td>
2 s) l0 \7 P" I; S<td>2121.32</td>
* X/ U0 Y8 s3 G2 t n) @* @: W1 z( \</tr>
" W- }% Q# Z% ^& R! w5 V& o</tbody>
& n, C) r1 E m* v# N; |</table>/ ^) h% r; i1 y" d. e
<h3>场景3:与 <code>SORT</code> 嵌套,对透视结果排序</h3>
& B2 J" I8 I; T4 O, t<p><strong>需求</strong>:按部门透视总销售额,并按销售额<strong>降序排序</strong>。</p>
" T' b0 N$ I1 M* U<h4>公式编写</h4>+ x* ~% j" D& h+ p: k: F
<pre><code class="language-excel">=SORT(PIVOTBY(A2:A6, "", C2:C6), 2, -1), J- d( l( a) F/ [, q
</code></pre>
/ C% }* F+ ^3 x( w7 x<h4>嵌套逻辑</h4>
+ c" {/ o. n4 W5 i, i<ol>
9 Y+ f8 b2 d( N5 }<li>先用 <code>PIVOTBY</code> 生成基础透视结果(2列:部门+销售额);</li>
8 a+ i% `. V3 f/ P<li>再用 <code>SORT</code> 函数按<strong>第2列(销售额)</strong> 降序(<code>-1</code>)排序。</li>
2 j/ J, i0 G- @5 ]# v</ol>0 P) S5 j7 X3 a
<h4>排序后结果</h4>& N8 o2 x" p- s" e8 ?4 V6 e. Q
<table>
0 p" y4 t" W- ^( V) d$ v& N7 p. t<thead>2 I5 m+ n* h7 Q1 g; z
<tr>
( h0 s2 k5 _. U7 n& R<th></th>
' M/ E1 V7 ^* I; u# _<th>销售额</th>6 |7 _+ x2 h8 Q& |) m$ R) d
</tr>
3 m ~; ?. \ }0 X8 z</thead>
, ~% P/ c8 [4 Q0 a6 k<tbody>8 K& |% F+ J7 U2 b8 J& V
<tr>
D* @ R2 a6 k7 k5 X<td>销售部</td>
7 h% \* Q* B# y% W2 F<td>22000</td>8 f# l! p9 S1 k" X
</tr>
# c1 M t) L: Q3 u6 l" p9 H3 X<tr>0 Z- o+ l4 M+ E8 h% _
<td>技术部</td>
+ x A6 g# W" t# a; T7 {1 C3 L<td>17000</td>
: v/ f9 W$ K5 ?, e5 D2 P1 J0 a</tr>
u/ R, ?/ R- `$ v/ n<tr>5 Q4 |& u5 A5 O V8 b
<td>市场部</td>( z+ W9 |( r& i9 y4 } _
<td>7000</td>
! F) f6 Y! N' }) Q</tr>
; f9 m1 e. c0 I/ J. @% U' W' G</tbody>4 A- S P1 a* e2 S& C
</table>0 P8 n0 r7 |2 o" Q* V' v
<h2>六、常见问题与注意事项</h2>
. J' _3 V6 g3 {, \$ U6 M2 y<ol>+ t6 S$ d, h. C7 A% P0 _
<li>
1 S! H! v. {( Z<p><strong>溢出错误 <code>#SPILL!</code></strong></p>
% Q0 ?; \/ e" L4 e<ul>( }' e. p" P4 i5 }& `" j+ N0 F
<li>原因:结果区域被其他单元格内容阻挡;<code>rows</code>/<code>cols</code>/<code>values</code> 行数不一致。</li>
7 Q7 V2 z. `5 d$ O% t% S<li>解决:清空结果区域的空单元格;检查数据源区域行数是否匹配。</li># Y# x# @2 I8 k
</ul>- l+ E% D" c% G+ _! f( B
</li>' @ v) I- h) h2 Z, A
<li>5 n; a* T2 t) @
<p><strong>聚合函数不生效</strong></p>
) f1 F& \4 C6 i* V2 h2 H<ul>5 h% \ _4 I( i5 u3 z! e
<li>原因:<code>agg</code> 参数拼写错误(如 <code>"Sum"</code> 写成 <code>"sum"</code> 不影响,但需避免错别字);自定义 <code>LAMBDA</code> 函数语法错误。</li>
8 D2 B$ u- R; V8 v, U% a! Y# h0 R<li>解决:核对内置聚合函数名称;调试 <code>LAMBDA</code> 函数逻辑。</li>; ?% @' _9 W' d
</ul>
" {: [6 F0 G3 w) a</li>
7 q- Q. `" i/ c! y) m- h& c' h4 f<li>
4 m, m% O" @* K<p><strong>多字段分组顺序问题</strong></p>
7 [0 S% V$ {' Y4 ?$ l% ] s<ul>2 j4 |* ~. F+ g3 R2 e
<li>技巧:<code>HSTACK(字段1, 字段2)</code> 中,字段1是<strong>外层分组</strong>,字段2是<strong>内层分组</strong>,顺序决定透视结果的层级。</li> q9 v$ k. w: H5 G; }( V: D8 ]8 b7 t
</ul>% K/ t" }1 q. }$ B8 J
</li>6 _: \) r5 J; V: D+ k
<li>
( I" i+ g! H9 e<p><strong>性能优化</strong></p>2 ?- |3 r$ b- v( `
<ul>; q) u/ y4 C# S9 P2 z
<li>当数据源超过1万行时,避免使用复杂自定义聚合;</li>
' h2 m! ^- |6 s$ ?, c+ I<li>先用 <code>FILTER</code> 筛选目标数据,再传入 <code>PIVOTBY</code>,减少计算量。</li>6 w6 V( u" H2 i3 m% n6 x* X* {, o" {
</ul>
! p& _8 {* D; E* a</li>- Q0 u' C* H( \. J
</ol>! P# F$ d2 w+ m9 j8 r V5 u0 S. l. b
|
-
温馨提示:
本文《Excel动态透视表--PIVOTBY函数初级到高级用法》由: 打工日常 发表于 2026-1-9 09:51
原文链接:https://www.jiangmen.pro/thread-128-1-1.html
- 1、本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2、本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3、本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4、未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5、匠们网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6、下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7、本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
- 8、该内容可能包含由AI辅助创作,请仔细甄别。
|