【问题标题】:Excel - Analyzing / Counting the comma separated values in cellsExcel - 分析/计算单元格中的逗号分隔值
【发布时间】:2022-01-17 13:00:08
【问题描述】:

这是一个 Excel 表,我们在其中跟踪各个国家/地区的产品需求[表/表名称:数据]

Country Products
India A
Australia A,B
Brazil B, C

该数据将用于通过简单地计算每个国家/地区的产品来了解各个国家/地区的产品需求。这就是数据的样子:

Products Demand
A 2
B 2
C 1

[表格/表格名称:产品需求]

我能够做到这一点的方法之一是: 拆分产品列/单元格中的逗号分隔值,然后 CountIFS 但是,这种方法涉及

  1. 每次更新 数据 表时,手动将其复制粘贴到另一张表中。
  2. 产品可能会增加,例如:可能会推出新产品“Z
  3. 我们使用 Power BI 创建全国需求产品的热图。 Power BI 服务每周一提取数据。手动操作会破坏自动化。

请提供建议/指导

用最少的人工来计算单元格中的产品(或逗号分隔值)的最佳方法是什么。

谢谢!

【问题讨论】:

    标签: excel analysis multiple-value


    【解决方案1】:

    您需要将数据转换为更有用的结构。一种方法是使用 Power Query。 从您的源数据开始作为一个名为 Table1 的表。 然后,将以下代码粘贴到 Power Query 的高级编辑器中:

    let
        Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Country", type text}, {"Products", type text}}),
        #"Replaced Value" = Table.ReplaceValue(#"Changed Type"," ","",Replacer.ReplaceText,{"Products"}),
        #"Split Column by Delimiter" = Table.SplitColumn(#"Replaced Value", "Products", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Products.1", "Products.2"}),
        #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Products.1", type text}, {"Products.2", type text}}),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type1", {"Country"}, "Attribute", "Value"),
        #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Columns",{"Attribute"})
    in
        #"Removed Columns"
    

    此代码将生成一个结构有用的数据表。数据透视表可以使用 Power Query 的输出表作为源来生成您想要的最终表。

    【讨论】:

      【解决方案2】:

      如果数据在两个工作表的 A 列和 B 列中,并且有一个标题行,数据从第 2 行开始,在 Product-Demand 工作表的单元格 B2 中,放置以下公式:

      =COUNTIF(Data!$B$2:$B$4,"*" & A2 & "*")
      

      然后向下拖动

      【讨论】: