使用公式创建透视表样式的报表
完全使用公式重新创建透视表汇总
使用公式创建透视表样式的报表 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。
不用数据透视表实现数据透视
数据透视表会交叉汇总数据:一种类别作为行,另一种类别作为列,网格中填入总计。一个经典示例是左侧按区域排列,顶部按季度排列,每个单元格显示相应的销售额。
数据透视表非常实用,但需要手动刷新,而且位于固定区块中。公式驱动的数据透视表会在数据发生变化时自动实时重建。
在本课中,您将安排行标题、列标题,并使用一组 SUMIFS 公式自动计算每个交叉项。
报表背后的数据
我们将使用一个名为销售的工作表,其中包含以下列:A 列为区域,B 列为季度,C 列为金额,数据范围为第 2 行到第 500 行。
我们希望生成的报表如下:
- 行标签:E 列中向下列出每个不重复的区域。
- 列标签:第 1 行 F 列到 I 列横向列出 Q1、Q2、Q3、Q4。
- 主体区域:每个区域和季度组合对应的金额总计。
主体区域中的每个单元格都在回答一个问题:这个区域在这个季度卖出了多少?
创建行标题
行标题就是不重复的区域。将 UNIQUE 与 SORT 结合使用,让区域沿 E 列向下溢出并保持有序。
将以下公式放在 E2 中:
现在,区域会自动填充到 E2 及其下方的单元格。与汇总表一样,这份列表是整个网格所依据的锚点。
=SORT(UNIQUE(Sales!A2:A500))创建列标题
列标题是横向分布在一行中的季度。您可以手动输入 Q1、Q2、Q3、Q4,也可以将 UNIQUE 套入 TRANSPOSE,让季度水平溢出。
在 F1 中输入以下公式,即可将不重复的季度横向排列在顶部:
TRANSPOSE 会将垂直列表转换为水平列表,因此季度列会变成标题行。现在,网格的两个轴都已就位。
=TRANSPOSE(SORT(UNIQUE(Sales!B2:B500)))单个单元格的核心 SUMIFS
现在填充主体区域。每个单元格都需要计算其所在行的区域和所在列的季度对应的总计。SUMIFS 可以轻松处理两个条件。
在第一个主体单元格 F2 中输入:
这表示:当区域等于左侧的标签且季度等于上方的标题时,返回金额总计。这是数据透视表中的一个交叉项。
=SUMIFS(Sales!$C$2:$C$500, Sales!$A$2:$A$500, $E2, Sales!$B$2:$B$500, F$1)使用混合锚点锁定引用
美元符号可以让一个公式通过复制填充整个网格。请研究以下混合引用:
$E2锁定 E 列,但允许行号变化,因此每一行都会读取自己的区域。F$1锁定第 1 行,但允许列号变化,因此每一列都会读取自己的季度。$C$2:$C$500完全锁定,因为数据区域不会发生偏移。
将 F2 复制到所有季度列以及所有区域行,每个单元格都会自动进行正确调整。
=SUMIFS(Sales!$C$2:$C$500, Sales!$A$2:$A$500, $E2, Sales!$B$2:$B$500, F$1)填充整个网格
正确输入 F2 后,选中该单元格,将填充柄向右拖过所有季度列,然后向下拖过所有区域行。Excel 会为您重写相对引用部分。
- G2 单元格会变为区域 $E2、季度 G$1。
- F3 单元格会变为区域 $E3、季度 F$1。
结果就是一张完整的交叉表,每个交叉项都已计算总计。无需使用数据透视表向导,销售数据一发生变化,报表就会立即重新计算。
=SUMIFS(Sales!$C$2:$C$500, Sales!$A$2:$A$500, $E2, Sales!$B$2:$B$500, G$1)添加行总计和列总计
真正的数据透视表会显示总计。请在右侧添加一个总计列,并在底部添加一个总计行,使用普通的 SUM 对每一行或每一列进行求和。
要计算第一个区域的行总计,请将以下公式放在最后一个季度右侧的列中:
要计算列总计,请将该季度的主体单元格沿各行相加。这些边缘总计让报表更加完整,也便于读者快速检查数字是否合理。
=SUM(F2:I2)使用溢出引用简化主体区域
如果您使用的工具支持此功能,就可以直接将溢出引用传递给 SUMIFS,从而无需复制公式。请将溢出的标题用作条件。
以下一个公式就能计算每个区域和季度交叉项的总计:
这里,E2# 是垂直的区域列表,F1# 是水平的季度列表。Excel 会一次性将它们配对并生成完整网格。拖动填充的方法兼容性更好,但这种方法是更简洁的现代版本。
=SUMIFS(Sales!$C$2:$C$500, Sales!$A$2:$A$500, E2#, Sales!$B$2:$B$500, F1#)添加占总计百分比列
报表不仅显示金额,还显示占比时,信息价值会更高。请添加一列,将每个区域的总计表示为总计的百分比。
如果区域行总计位于 J2,而总计位于 J10,请输入:
使用 $J$10 锁定总计后,您就可以将公式向下填充到所有区域,同时公式始终除以同一个分母。将该列设置为百分比格式,读者就能立即看出哪些区域占据主导地位。
=J2 / $J$10保持报表易于维护
遵循以下几个习惯,可以让公式数据透视表保持可靠:
- 引用第 2 行到第 500 行这类完整且宽裕的区域,以便包含新增行。
- 使用完整的
$锚点锁定数据区域;只有标题引用应当移动。 - 在下方和右侧留出空白空间,以便溢出的标题和总计有足够的扩展空间。
如果操作得当,这份报表无需维护。输入新的销售记录后,网格、总计和标签都会自动更新。
快速检查
检查您对驱动公式数据透视表的混合引用的掌握程度。
回顾:公式数据透视表报表
您只使用公式就重新创建了一张数据透视表:
UNIQUE加上SORT,在溢出列中创建了行标题。TRANSPOSE将列标题横向排列在一行中。- 带有混合引用
$E2和F$1的SUMIFS填充了每个交叉项,既可以通过拖动完成,也可以使用E2#和F1#这样的溢出引用完成。 SUM添加了总计边缘。
整个网格都会实时重新计算。下一步,您将使用驱动指标的下拉菜单让仪表板实现交互。
常见问题解答
「使用公式创建透视表样式的报表」课时是免费的吗?
是的 — 「使用公式创建透视表样式的报表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。
「使用公式创建透视表样式的报表」这节课中我会学到什么?
完全使用公式重新创建透视表汇总 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Excel Formulas Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「使用公式创建透视表样式的报表」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Excel Formulas Academy 课中编写并运行代码吗?
能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用动态数组创建汇总表
- 使用公式创建透视表样式的报表
- 交互式下拉菜单与关联指标
- KPI 卡片与条件突出显示