没有VBA的复杂枢轴式总结

给定一组这样的数据:

User Item1 Desc. Item1 Sel. Item2 Desc. Item2 Sel. Item3 Desc. Item3 Sel. UserA Item 1 Yes Item 2 Yes Item 3 Yes UserB Item 1 Yes Item 2 No Item 3 No UserB Item 1 Yes Item 2 Yes Item 3 No UserC Item 1 Yes Item 2 No Item 3 Yes UserA Item 1 No Item 2 Yes Item 3 Yes UserA Item 1 Yes Item 2 No Item 3 Yes 

有没有一种方法可以使用内置的Excel工具,函数或公式来产生这样的输出

 Item UserA UserB UserC Item1 1 0 0 Item2 1 1 1 Item3 0 2 0 

ItemsUsers都合并的情况下,提供的价值是表中的No数?

我被要求为我的一个同事做好准备,最后创build了下面的VBA函数。 它是快速和肮脏的,将需要重构,当然,但它确实得到我所需要的。

 Sub SummarizeData() Dim wksSrc As Worksheet Dim dicAssoc As Object Dim l As Long Dim i As Integer Dim rngCell As Range Dim v As Variant Set dicAssoc = CreateObject("Scripting.Dictionary") With ThisWorkbook.Sheets.Add() .Name = "Results" Set wksSrc = ThisWorkbook.Sheets("data") For l = 2 To 184 If Not dicAssoc.exists(wksSrc.Range("C" & l).Value) Then dicAssoc.Add wksSrc.Range("C" & l).Value, wksSrc.Range("C" & l).Value End If Next l .Range("A1:A26").Value = ThisWorkbook.Sheets("Sheet5").Range("A1:A26").Value l = 2 For Each v In dicAssoc.items .Cells(1, l).Value = v l = l + 1 Next v For Each rngCell In wksSrc.Range("A2:CT184").Cells For l = 2 To 26 If rngCell.Value = .Cells(l, 1).Value Then If rngCell.Offset(0, 1).Value = "No" Then For i = 2 To 148 If .Cells(1, i).Value = wksSrc.Range("C" & rngCell.Row).Value Then .Cells(l, i).Value = .Cells(l, i).Value + 1 End If Next i End If End If Next l Next rngCell End With End Sub 

我本来试图解决这个问题没有代码,但经过一些试验和错误,决定最好不要浪费我整整一天在这个项目上。 我以为我可以尝试DCOUNTA ,但这需要我拉多个额外的数据,这将浪费空间:

DCOUNT标准示例:

 Item1 Sel. Item2 Sel. Item3 Sel. User No UserA No UserA No UserA No UserB No UserB No UserB 

等等等等。 有大约25个项目和大约25个用户,这将是一个巨大的块,其中大部分将不得不手动创build。 那时候,不pipe怎么样,我还不如用手去计算一切。

我也想过使用VLOOKUPHLOOKUPINDEXINDIRECT一些组合,但我永远不会得到一个统计所有 No的结果; 它总是抓住了它发现的第一行。

我想知道是否有一个相对简单的方法来生成此摘要而不使用VBA。

使用SUMPRODUCT公式可以轻松实现您想要的function。

请参阅附件中的示例和截图。

要find项目1和用户1的“否”号码,我使用的公式是

 =SUMPRODUCT(($A$2:$A$7=$B$11)*($C$2:$C$7="No")) 

同样,你必须为其余的做。

示例文件

http://wikisend.com/download/725440/Gaffi.xlsx

快照

在这里输入图像说明