在值中包含文本的数据透视表

数据透视表对每个人都有好处——它们计算速度快,配置灵活,如果需要,设计可以优雅地融入其中。 但也有一些美中不足的地方,特别是无法创建摘要,其中值区域不应包含数字,而是文本。

让我们试着绕过这个限制,在类似的情况下想出“一对拐杖”。

假设我们公司将其产品用集装箱运输到我国和哈萨克斯坦的几个城市。 集装箱每月发送不超过一次。 每个容器都有一个字母数字编号。 作为初始数据,有一个标准表列出了交货,您需要从中进行某种汇总,以便清楚地看到每个城市和每个月发送到的集装箱数量:

在值中包含文本的数据透视表

为方便起见,让我们使用命令预先将带有初始数据的表“智能” 主页 – 格式为表格 (首页——表格格式) 并给她一个名字 交付 标签 构造函数 (设计). 在未来,这将简化生活,因为。 可以直接在公式中使用表格名称及其列。

方法 1. 最简单的 - 使用 Power Query

Power Query 是一个超级强大的工具,用于在 Excel 中加载和转换数据。 该插件自 2016 年起默认内置在 Excel 中。如果您有 Excel 2010 或 2013,则可以单独下载和安装(完全免费)。

整个过程,为了清楚起见,我在下面的视频中逐步分析:

如果无法使用 Power Query,那么您可以采用其他方式 - 通过数据透视表或公式。 

方法二、辅助总结

让我们在原始表格中再添加一列,使用一个简单的公式计算表格中每一行的数量:

在值中包含文本的数据透视表

显然,-1 是必需的,因为我们的表格中有一个单行标题。 如果您的表格不在工作表的开头,那么您可以使用一个稍微复杂但通用的公式来计算当前行和表格标题的数量之差:

在值中包含文本的数据透视表

现在,以标准方式,我们将根据我们的数据构建所需类型的数据透视表,但在值字段中,我们将删除该字段 行号 而不是我们想要的 容器:

在值中包含文本的数据透视表

由于我们在同一个城市没有几个集装箱在同一月份,我们的摘要实际上不会给出数量,而是我们需要的集装箱的行号。

此外,您可以关闭选项卡上的总计和小计 构造函数 - 一般总计 и 分类汇总 (设计——总计、小计) 并在同一个地方使用按钮将摘要切换到更方便的表格布局 报告样机 (报告布局).

因此,我们已经完成了一半的结果:我们有一个表,在 city 和 month 的交汇处,源表中有一个行号,我们需要的容器代码所在的位置。

现在让我们复制摘要(到同一张或另一张纸上)并将其粘贴为值,然后将我们的公式输入到值区域,这将通过摘要中的行号提取容器代码:

在值中包含文本的数据透视表

功能 IF (如果),在这种情况下,检查摘要中的下一个单元格是否为空。 如果为空,则输出一个空字符串“”,即留空单元格。 如果不为空,则从列中提取 容器 源表 交付 使用函数按行号的单元格内容 指数 (指数).

也许这里唯一不太明显的一点是双字 容器 在公式。 这么奇怪的写法:

补给品[[容器]:[容器]]

… 只需要引用该列 容器 是绝对的(就像普通“非智能”表的 $ 符号引用)并且在将我们的公式复制到右侧时不会滑到相邻的列。

以后更改源表中的数据时 交付,我们必须记住通过右键单击它并选择命令来使用行号更新我们的辅助摘要 更新并保存 (刷新).

方法 3. 公式

这种方法不需要创建中间数据透视表和手动更新,而是使用了Excel的“重武器”——函数 夏日瘦身 (总和). 您可以使用以下公式计算它们,而不是在摘要中查找行号:

在值中包含文本的数据透视表

实际上,这是选择性求和功能的标准用例 夏日瘦身A 对给定城市和月份的行号求和。 同样,由于我们在同一个月内没有同一个城市的多个容器,我们的函数实际上将给出的不是数量,而是行号本身。 然后是之前方法中已经熟悉的功能 指数 您还可以提取容器代码:

在值中包含文本的数据透视表

当然,在这种情况下,您不再需要考虑更新摘要,而是在大表上,函数 苏梅斯利 可能会明显变慢。 然后你将不得不关闭公式的自动更新,或者使用第一种方法——数据透视表。

如果摘要的外观不太适合您的报表,那么您可以不直接将行号从中提取到最终表格中,就像我们所做的那样,而是使用函数 获取数据透视表数据 (GET.PIVOT.DATA). 如何做到这一点可以在这里找到。

  • 如何使用数据透视表创建报告
  • 如何在数据透视表中设置计算
  • 使用 SUMIFS、COUNTIFS 等进行选择性计数。

发表评论