0

ここに、かなり複雑な形式のデータベースからのダンプが機能しているという問題があります。基本的には、操作する個々のリレーションテーブルほど、表示される情報は提供されません。

例:次の情報列があるとしましょう

ID、色、サイズ、数量、タイプ

情報はこんな感じ

IDカラーサイズ数量タイプ
茶色2011
Cイエロー1022
Dブラウン4051
青7013
黄色8012
Bイエロー2041
Dブルー7042
Cブルー1031

私が必要としているのはもっとこのようなものです

IDブラウンサイズタイプブルーサイズタイプイエローサイズタイプ
A 1 20 1 1 0 3 1 80 2
B 0 0 0 0 0 0 4 20 1
C 0 0 0 3 10 1 2 20 1
D 5 40 1 4 0 2 0 0 0

私はこれをExcelの式、おそらくsumifsと呼ばれる式で達成できるのが一番好きですが、これを機能させることができないようです。

4

2 に答える 2

1

これを行うには、配列数式でSUMとIFを組み合わせて使用​​します。

データテーブルがセルA1で始まり、結果テーブルがセルA11で始まると仮定して、セルB12、C12、およびD12にそれぞれ次の数式を入力することから始めます。必ず、CONTROL-SHIFT-ENTERキーの組み合わせを使用して入力してください。

B12    =SUM(IF($B$2:$B$9=B$11,IF($A$2:$A$9=$A12,$D$2:$D$9,0)))

C12    =SUM(IF($B$2:$B$9=B$11,IF($A$2:$A$9=$A12,$C$2:$C$9,0)))

D12    =SUM(IF($B$2:$B$9=B$11,IF($A$2:$A$9=$A12,$E$2:$E$9,0)))

セルをデータテーブルの一番下(この例では行15)にコピーします。

次に、作成した数式のブロックをセルE12にコピーします。ここで、結果テーブルの青のセクションが始まります。次に、同じ数式ブロックをセルH12にコピーします。ここで、結果テーブルのYELLOWセクションが始まります。

このソリューションは、データテーブルにIDとCOLORの重複する組み合わせがなく、組み合わせが欠落していないことを前提としています。IDとCOLORの組み合わせが欠落している場合は、数式をIFERROR関数(Excel 2010の場合)でラップする必要があります。

于 2012-12-08T20:40:10.050 に答える
0

データテーブルを転置する方法は、次のように実行されます...

あなたの例はもう少し複雑なので、私はあなたの完全なデータを使用するつもりはなく、サイズだけを使用します。インデックスと呼ばれる列を作成することから始めます

A                B   C       D
INDEX            ID  COLOR   SIZE  
=A3 & "-" & B3   A   brown   20    
=A4 & "-" & B4   C   yellow  10    
.                D   brown   40   
.                A   blue    70   
.                A   yellow  80   
.                B   yellow  20   
D-blue           D   blue    70   
C-blue           C   blue    10    

ヘッダー行とID列を組み合わせた同等のテーブルを作成します

F      G                    H             I
ID     brown                blue          yellow
A      =$F2 & "-" & G$1     .             .
B      .                    .             .
C      .                    C-blue        C-yellow    
D      .                    D-blue        D-yellow

最後に、これをVLOOKUPまたはOFFSET(MATCH(_))でラップし、IFERRORが発生する可能性があります

ID     brown                blue          yellow
A      =IFERROR(VLOOKUP($F2 & "-" & G$1,$A$3:$D$10,4,FALSE),"Err")
B      .                    .             .
C      .                    10            10    
D      .                    70            Err

とにかく、それは私が一般的にこの種の変換を行う方法です

于 2014-02-07T13:53:50.513 に答える