2016-10-07 13 views
-1

製品のエラーコードに関する膨大なデータを含むスプレッドシートがあります。スプレッドシートには、入力する3つのエラーコードの列があります。例えばExcel:ピボットテーブルの複数のフィルタ列

:ピボットテーブルが設定され

errorcode1 errorcode2 errorcode3 
88   
100   88 
101 
88   115   
110   90   88 

方法、私は唯一のエラーコードでフィルタリングすることができます。私が88のコードをすべて知りたいのであれば、errorcode1で88をフィルタリングします.2つしかないのに2の結果しか得られません。

理想的には、フィルタの結果を追加できることが目標です。たとえば、

errorcode1 errorcode2 errorcode3 
88 
100   88 
88   115 
110   90   88 

エラーコードの合計を1つの列に限定するのではなく、どのように達成できますか?

+0

:以下

は一例です。説明してください...あなたのピボットテーブルのビジュアルを追加して、問題を理解するのに役立ちますか? – EEM

答えて

0

私はいくつかの= countifs()で別のテーブルを設定します。 (もちろん、あなたのワークブックで、私は、コードを含むセルを参照します。)

Error code Count 
88   =countifs(A2:C10,88) 
100   =countifs(A2:C10,100) 
101   =countifs(A2:C10,101) 

ここでの利点は、簡単に新しいエラーコードを追加し、それらをコピーすることができます。以下

参照のスクリーンショット:

enter image description here

+0

助けていただきありがとうございますが、それは私が探しているものではありません。ピボットテーブルにデータがあり、ドロップダウンセクションを使用してデータをフィルタリングできます。私は、複数のドロップダウンセクションをフィルタリングし、それらを本質的に '追加'して、1つの列の代わりにすべての結果を表示したいと考えています –

+0

@MikeBrunner Ok ...ピボットテーブルで複数の列をフィルタリングできるようにしたいのですか?または、下のOldUglyの答えは役に立ちますか? – Jonathan

0

ピボットテーブルの作業:

example of countifs

あなただけの唯一の正しい列を参照し、エラーコードにより、エラーコードの量を知りたい場合はあなたのソースデータが「フラット」である場合、つまり事前に組織されていない場合に最適です。

あなたのデータは部分的に組織されています。

私は、各ERRCODEが発生した回数...今、あなたは面白いピボットテーブルの数を生成することができます...あなたの生データは、以下のようになりた

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 

を勧めますか?私は複数のErrCodesが報告されていますどのように多くの時間

enter image description here

enter image description here

...など。

編集:あなたはすでにあなたが記述の方法で編成されているソースデータが大量にあると仮定すると、平坦化データは

、私はデータを平坦化するVBAの短い断片を使用します。Iは第一例及び第二との間の差が表示されない欠落101とライン3に加え

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 
+0

ご協力いただきありがとうございます。面白そうだし、おそらくうまくいくかもしれない。私はどのように私があなたが示したもののようなインデックス付きのリストに上記のように私のリストを転記することができますか? –

+0

私はVBAを使用します。私は、VBAがどのように見えるかを含めるようにソリューションを編集しました。 – OldUgly

関連する問題