2017-03-07 4 views
1

私は大量のデータセットをExcelに持っています。私は行と列を再配置したいと思います。Excelでデータが争う - 列と行を並べ替える

ここに、データのスニペット、その外観、およびそのように見せたいものがあります。

Area, Channel, Unit, Year1, Year2, Year3, Year4 
bel, dc,  share, 25, 36, 56, 45 
bel, dc,  avm, 23, 45, 65, 47, 
bel, dc,  ats, 45, 2,  3,  4, 
bel, tl,  share, 25, 36, 56, 45 
bel, tl,  avm, 23, 45, 65, 47, 
bel, tl,  ats, 45, 2,  3,  4, 

単位と年(Year1、Year2、Year3、Year4)を切り替える必要があります。このようにするには

Area, Chennel, Year, Share, avm, ats 
bel, dc,  Year1, 25, 23, 45 
bel, dc,  Year2, 36, 45, 2 
bel, dc,  Year3, 56, 65, 3 
bel, dc,  Year4, 45, 47, 4 
bel, tl,  Year1, 25, 23, 45 
bel, tl,  Year2, 36, 45, 2 
bel, tl,  Year3, 56, 65, 3 
bel, tl,  Year4, 45, 47, 4 

これを達成する方法はありますか?

+0

VBAを使用しない。私はオフセット機能はトリックを行うかもしれないが、まだわからないと思う。 –

答えて

1

このようなことをする方法はたくさんあります。私は通常、インデックスマッチを使用します。

私はこのようなことをインデックスマッチで行います。

=INDEX($D$2:$G$4,MATCH(D$7,$C$2:$C$4,0),MATCH($C8,$D$1:$G$1,0))

まず私は、データを転置するつもりスポットを構築: enter image description here

その後、私は適切な式に入れる: enter image description here

はしくみはこうだ:

この使用方法では、Indexには3つの引数があります。数字の範囲、取得したい行、私はつかみたい

範囲変化しないので、私はドル記号(次の引数は、私からつかむしたい行であるF4 INDEX($D$2:$G$4

を打つとして、私はそれを見つけるためにmatchを使用することをロックMatch(も3つの引数を取るん。。:私が検索したい値は、範囲は私がそれを見つけるつもりです、と0はExcelが私の範囲が順番になっていないことを知っているように、それは正確一致するものを見つける必要がある。だから、

私のインデックス行はMATCH(D$7,$C$2:$C$4,0)"Year1"の範囲内にあります。$D$1 -> $G$1ドル記号を使用して行と列をロックするので、数式をテーブル全体にコピーすることができ、変更が必要な部分だけが表示されます。

+0

これは面白そうです、私はいくつかのテストを実行し、あなたに戻ってきます。ありがとう! –

+0

は、複数のチャネルが存在する場合にこの問題を解決するために苦労しています。私は私の例に別のチャンネルを追加しました。 –

+0

同じ基本構造を維持しますが、行の仕様をもう少し調整する必要があります。 _share、avm、&ats_が常に同じ順序で来る限り、あまりにも難しくありません。最初に一致したチャンネルラベル( 'match($ B8、$ B2 $ b4,0)')を検索して結果を行の仕様に追加するだけで、左上の式は次のようになります: 'INDEX (D $ 7、$ C $ 2:$ C $ 4,0)+マッチ($ B8、$ B2 $ b4,0)、MATCH($ C8、$ D $ 1:$ G $ 1 、0)) '上のテーブルに行を追加したため、あなたは少し違います。 – Adam

関連する問題