使用枢轴表汇总文本数据

2019-01-13

我有一个参加我一个人的人的一个相当有趣的问题枢轴桌网络研讨会.他们想知道是否可以在枢轴桌的区域?

这通常是我们通过各种不同的聚合方法总结字段的区域,比如取总和、平均值、最小值、最大值或标准差。

但事情是,这些聚合方法需要数字数据!

有什么方法来总结基于文本的数据,将返回文本作为结果?

答案是肯定的,但我们需要使用数据模型和DAX公式来执行此操作。传统的数据透视表不具备此功能。

此外,我们需要成为Excel 2013(或更高版本)和Office 365的PC用户。抱歉,但Mac版本中没有这些现代功能。

视频教程

这个问题

学生表格用数据透视表总结文本数据

在这里,我们有一个学生列表,以及他们注册的课程。当学生在多个课程中注册时,学生可以拥有多行数据。

我们可以用枢轴表总结这些数据,以便我们只显示每个学生一次,然后显示逗号分隔的课程列表?

插入枢轴表

首先,我们需要插入一个数据透视表。这是按通常的方式做的。

选择数据➜中的一个单元格,转到插入选项卡➜然后按下数据透视表按钮。

添加-Tippor-to-the-the-data-model汇总枢轴表的文本数据

为了使用DAX公式,我们需要选择将其添加到数据模型中选择。

添加措施

使用传统的数据透视表,我们不需要定义任何计算。它们预先定义了基本的总和,计数,平均值,最小值,最大值,标准偏差和方差计算。

有了数据模型,我们可以使用DAX公式进行全新的计算。这些是通过添加创建的措施.我们可以用这些来进行任何计算。

使用枢轴表汇总文本数据的添加措施

要添加度量,请选择透视表➜右击在表格中找到的数据数据透视表字段窗户➜选择添加措施从菜单。

这将打开措施对话框,我们可以创建DAX公式。

ConcatenateX函数

测量对话框用数据透视表汇总文本数据

在“尺寸”对话框中:

  1. 我们需要选择表为我们的测度附加一个名称和描述。
  2. 我们可以使用该探索可用的DAX公式插入函数并检查我们所写公式的有效性。
  3. 我们可以在中写下我们的公式DAX公式编辑器
  4. 我们可以分配格式化测量。

要创建将文本聚合到以逗号分隔的列表中的度量,我们将使用ConcatenateXDAX功能。

= CONCATENATEX (StudentData(课程),“,”)

我们需要把上面的公式代入DAX公式编辑器然后我们可以通过按下来创建新的度量好吧按钮。

这将需要课程场的StudentData表并将其值与逗号和空格字符一起连接为分隔符。

使用我们的新措施

使用数据透视表的新测量值区域汇总文本数据

这项新措施将出现在数据透视表字段窗口的所有其他字段,我们可以像使用其他字段一样使用这个新度量。

方法可以很容易地从数据字段中识别度量外汇从度量名称中插入图标。

我们可以点击并拖动课程列表测量到我们的枢轴桌区域,这将产生逗号分隔的学生课程清单。

结论

透视表在Excel中已经有很长一段时间了,它们可以做很多有用的计算。

但是它们是有限的,特别是在显示文本值时区域。

使用数据模型,我们得到了许多常规数据透视表没有的新计算选项,包括连接文本值以显示在区域。这绝对是一个值得探索的特性,因为常规的数据透视表无法解决这个问题。

关于作者

John Macdougall.

John Macdougall.

John是微软MVP和自由顾问和培训师,擅长Excel, Power BI, Power automation, Power Apps和SharePoint。你可以在约翰的博客或YouTube频道上找到其他有趣的文章。

订阅

广告

相关文章

评论

12个评论

  1. 劣质煤

    你好约翰,

    这是非常有帮助的!我有些麻烦将我的新度量字段添加到值区域。出于某种原因,它没有填充。我试图为非常大的数据表(数万行)这样做。使用它与非常大的数据来源时无法处理它吗?其他措施(参考不同的字段)工作好。我尝试了在较小的100行数据样本上进行了这种特殊的措施,似乎工作。任何想法问题是什么以及如何解决它?

    谢谢!

    回复
    • 约翰

      是的,X DAX函数迭代整个数据集,因此资源密集。

      此外,单元格限制为32k个字符,因此结果可能会被截断。

      回复
  2. 楞次

    如果源表最多约3,000行,我只能将度量添加到数据透视图值部分。在我的情况下,源数据是32,000行。因此,要接近我正在寻找的结果,我将源数据拆分为3,000行最大的新标准表,然后从各个标准表中创建各个枢零设备。然后我将个别的“琶音”粘贴到一个标准表中。

    回复
    • 约翰

      是的,每个单元格只有32k个字符。

      回复
  3. 阿什利

    我喜欢这个新的发现,它为我的日常生活增加了一个全新的生产力水平......我用这个国家的主要表,以及客户所选择的各种配置选项。客户在哪个国家拥有多个实体的地方,我可能有几行为同一个国家,但是枢轴的结果自然复制如预期。这很好,在哪里有不同的选项,但是当该国每个实体正在设置相同时,有没有办法消除这些重复?例如:
    而不是“德国”SSO,SSO,SSO,SSO |间接,间接,间接,间接,“
    我想看看“德国|SSO |间接“

    我是不是期望太多了?

    谢谢你!

    回复
    • 约翰

      你可以尝试这样的方法来获得唯一的道具:

      = concatenatex(值(StudentData [课程]),StudentData [课程],“,”)

      值函数从列中返回唯一项目。

      回复
      • 阿什利

        Omg Omg Omg Omg !这几个星期我一直在修修补补,OMG,它真的管用!非常感谢。我对你感激不尽!谢谢你!

        回复
  4. Kamal.

    我们可以休息一下吗?通过使用任何分隔符?让我们只是说我们正在尝试通过添加一行中断来分隔细胞文本。

    回复
    • 约翰

      是的,char(10)作为分隔符将执行诀窍。

      回复
  5. 弗里曼银行

    在使用CONCATENATEX函数时,如何使用枢轴表结果计算Excel计算文本单元格。我只想计算数字字段。

    回复
    • 约翰

      我认为你做不到。如果它们在同一列中,数据将全部为文本类型。数据类型只能分配给列,而不能分配给列中的各个行。

      回复

提交评论

您的电子邮件地址将不会被公布。必需的地方已做标记*

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

获取最新消息

跟着我们

在社交媒体上关注我们,了解Excel中的最新技巧!

把它钉在Pinterest上

分享这个