我有一个电子表格,其中包含大量有关产品错误代码的数据。电子表格包含要输入三个错误代码的列。
例如:
errorcode1 errorcode2 errorcode3
88
100 88
101
88 115
110 90 88
透视表的设置方式,我只能过滤一个错误代码。如果我想知道总共88个代码,我将在errorcode1中过滤掉88,即使还有两个,也只有2的结果。
理想情况下,目标是能够添加过滤器的结果。例如
errorcode1 errorcode2 errorcode3
88
100 88
88 115
110 90 88
如何完成错误代码的运行总计而不是限制为一列?
答案 0 :(得分:0)
我会设置一个单独的表,其中包含一些= countifs()。 (显然在你的工作簿中我会引用包含代码的单元格。)
Error code Count
88 =countifs(A2:C10,88)
100 =countifs(A2:C10,100)
101 =countifs(A2:C10,101)
这里的优点是您可以轻松添加新的错误代码,然后将其复制下来。
见下面的截图:
如果您想通过错误代码知道错误代码的数量,只需引用正确的列:
答案 1 :(得分:0)
当您的源数据“持平”时,数据透视表最有效 - 即没有预先组织。
您的数据已部分整理。
我建议你的原始数据如下所示......
Err Index ErrCode
1 1 88
1 2
1 3
2 1 100
2 2 88
2 3
3 1 101
3 2
3 3
4 1 88
4 2 115
4 3
5 1 110
5 2 90
5 3 88
现在您可以生成许多有趣的数据透视表......
每个ErrCode发生了多少次?
我有多少次报告多个ErrCodes?
......等等。
编辑:展平数据
假设您已经按照您描述的方式组织了大量的源数据,我会使用一小段VBA来压缩数据。
以下是一个例子:
Option Explicit
Sub Flatten()
Dim SrcSht As Worksheet
Set SrcSht = Worksheets("Sheet1")
Dim DestSht As Worksheet
Set DestSht = Worksheets("Sheet2")
Dim LastSrcRow As Long
LastSrcRow = SrcSht.Range("A" & SrcSht.Rows.Count).End(xlUp).Row
Dim LastSrcCol As Long
LastSrcCol = SrcSht.Cells(1, SrcSht.Columns.Count).End(xlToLeft).Column
DestSht.Cells(1, 1) = "Err"
DestSht.Cells(1, 2) = "Index"
DestSht.Cells(1, 3) = "ErrCode"
Dim SrcRow As Long, SrcCol As Long, DestRow As Long
DestRow = 1
For SrcRow = 2 To LastSrcRow
For SrcCol = 1 To LastSrcCol
DestRow = DestRow + 1
DestSht.Cells(DestRow, 1) = SrcRow - 1
DestSht.Cells(DestRow, 2) = SrcCol
DestSht.Cells(DestRow, 3) = SrcSht.Cells(SrcRow, SrcCol).Value
Next SrcCol
Next SrcRow
Set SrcSht = Nothing
Set DestSht = Nothing
End Sub