如何使用 Excel 中的数据透视表计算一个单元格中的多个值?

How to count multiple values in one single cell using Pivot Tables in Excel?

我在 Excel sheet 中有这个 table:

我想创建一个 Pivot Table 以获得此结果:

你知道怎么做吗?

如果您不介意使用辅助列,请使用分栏文本将第三列拆分为单独的列,并使用逗号作为分隔符。将所有内容都放在一列中,然后根据结果数据创建数据透视表 table。

编辑:

Select C2:C5 并转到数据选项卡,然后 select "Text to Columns" 打开一个对话框。选择 delimited,然后选中下一个屏幕上的 comma 框以及 space 选项以删除空格并点击完成。您应该将每个项目都放在自己的单元格中。

接下来,我们需要将所有内容都放在一栏中。如果没有 VBA(如果您有大量数据,则需要 VBA),这不是一个好方法,但是对于较小的数据集,您可以复制整行,右键单击顶部在空列中,选择 Paste Special 并选中 Transpose 选项。这会将您复制的数据行作为一列粘贴到目标位置,反之亦然(如果您复制了一列)。对所有数据行重复上述操作,直到您拥有所有水果(包括重复项)的一列。

听起来你已经掌握了枢轴 tables 所以我不会详细介绍,但如果你需要我可以。

编辑 2:

Here's a link 到一些选项,用于将 tables 转换为一列而不是复制和粘贴。我建议使用以下代码:

Sub ConvertRangeToColumn()
    'Updateby20131126
    Dim Range1 As Range, Range2 As Range, Rng As Range
    Dim rowIndex As Integer
    xTitleId = "KutoolsforExcel"
    Set Range1 = Application.Selection
    Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
    Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
    rowIndex = 0
    Application.ScreenUpdating = False
    For Each Rng In Range1.Rows
        Rng.Copy
        Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        rowIndex = rowIndex + Rng.Columns.Count
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

即使没有主元也可以解决这个问题table。我用这种方法解决了同样的问题。

我假设第二个table,"Item"在A1,"Count of Table"在B1; 第一个 table 在 "Sheet1" 中,第二个 table 在 "Sheet2"

您还可以为客户购买的水果数量添加一个新列。这是在工作表 1 的 D1 列中。

您可以将这样的公式放在每行的 "Count of Item" 列下: (这个公式写一次,照常往下延伸)

=SUMIF(Sheet1!$C:$C;"*"&A2&"*";Sheet1!$D:$D).