- ベストアンサー
エクセルで表をまとめるための関数
- エクセルの表を作成し、特定の項目だけをまとめて表示するための関数はありますか?
- 使用する関数は、IF関数を使うことで実現できます。
- 最終的には、異なる項目ごとにまとまった表を作成することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えばシート1でA2セルから下方にはランダムにA,B,C,D…などの項目が入力され、B,C,D列までにその該当項目に関連するデータが入力されているとします。 作業列を使って対応するのが最も分かり易く計算にも負担がかからない方法です。 E2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,ROUNDDOWN(MAX(E$1:E1),-4)+10000,INDEX(E$1:E1,MATCH(A2,A:A,0))+COUNTIF(A$1:A1,A2))) お求めの表はシート2に作っても同じシート1に作ってもよいのですが例えばシート1のG列から右横の列を使って表示させるとしたらG2セルには次の式を入力して右横方向に℃ラグコピーしたのちに下方にもドラッグコピーします。 =IF(COLUMN(A1)>MAX(Sheet1!$E:$E)/10000*4,"",IFERROR(INDEX(Sheet1!$A:$D,MATCH(ROUNDUP(COLUMN(A1)/4,0)*10000+ROW(A1)-1,Sheet1!$E:$E,0),MOD(COLUMN(A1)-1,4)+1),"")) エクセル2010などではなく古いバージョンでしたら次の式を入力すればよいでしょう。 =IF(COLUMN(A1)>MAX(Sheet1!$E:$E)/10000*4,"",IF(ISERROR(INDEX(Sheet1!$A:$D,MATCH(ROUNDUP(COLUMN(A1)/4,0)*10000+ROW(A1)-1,Sheet1!$E:$E,0),MOD(COLUMN(A1)-1,4)+1)),"",INDEX(Sheet1!$A:$D,MATCH(ROUNDUP(COLUMN(A1)/4,0)*10000+ROW(A1)-1,Sheet1!$E:$E,0),MOD(COLUMN(A1)-1,4)+1)))
その他の回答 (1)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
表の作り、データの種類などに応じて、最適な数式には様々な可能性が考えられますが、質問文を読んでの一般論というか、基礎的な関数としては、VLOOKUP関数があります。検索・抽出をする関数です。ネットで検索してみてください。 関数以外なら、フィルタ(古いバージョンではオートフィルタ)がお手軽。もっと強力に集計するには、ピボットテーブル(クロス集計の機能)というのもあります。状況によってマクロを使うことも考えられますが、多くの場合はワークシート関数のみでも簡単に答えが出るので、そこまでしなくても済みます。 IF関数は、いわゆる場合分けの処理をするときに使います。場合分け後の処理が複雑な式になる場合に使うものともいえますが、よくある使い方は複雑云々ではなくて、文字列(空文字列を含む)を返す処理をしたい場合です。数値で結果を出すのであれば、IFは不要なケースが多いです。数値で求めておくと、他で利用するときに処理が何かとラクになります。 とはいえ、初級者のうちは、SUM、IF、VLOOKUPあたりから関数を覚えていくことになりそうです。
お礼
ありがとうございます。 返事が遅れて申し訳ありません。 関数の本を買ってみたのですが、まだ読み始めなので、検索等を一緒にしながら調べようと思います。 なぜか一番最初に思い浮かんだのがIF関数だったので・・・(汗) ありがとうございました。
お礼
数式まで書いていただいてありがとうございます。 昔そんな数式をたくさん学んだのですが、そんなのはどこへやらです(笑) もう一人の方が、VLOOKUP関数も教えていただいたので、それも調べながらやっていこうと思います。 ありがとうございました。