- ベストアンサー
エクセルについてです!
エクセルについての質問です。できるかどうかわかりませんがご指導お願い致します。 A B C D E 1 △ 200 △ 200 △の合計(この場合B1+B4+D1+D2で1000) 2 □ 300 △ 300 □の合計(この場合B2+D3で500) 3 ○ 500 □ 200 ○の合計(この場合B3+D4で1100) 4 △ 300 ○ 600 A、Cの欄に記号 B、Dに数字 を入れるようにしてありますのでできればこのままの状態での質問です。 A、Cの欄にある同じ記号(例えば△)の横にある(B、Dの欄の数字)の合計を出したいです。 上の図で例えるE1に△の合計(B1+B4+D1+D2)です。 図では書けないですが、かなり数字と記号があります。(A、Cが100くらい) どれだけ記号と数字が増えても記号ごとの集計ができるような式があれば教えていただきたいと思います。 わかりにくいとは思いますが宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
以下のように、検索条件範囲と集計範囲をを1つずらしたSUMIF関数を用いれば複数の列の集計をまとめてすることができます、 =SUMIF($A$1:$C$4,A1,$B1:$D4)
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! たびたびごめんなさい。 前回の例はどんな記号が入力されても対応できるようにしていますので あんなややっこしい数式になってしまいました。 No.1さんの補足を読ませていただくと >□・△・○の3種類です! >データは実際には30列あります・・・ とありますので 前回の方法は適していないと思います。 △・□・○ が決まっているのであれば、 どのセルでも良いですので、あらかじめ△・□・○を入力し その右となりのセルに 根気よく・・・ =SUMIF($A$2:$A$100,F2,$B$2:$B$100)+SUMIF($C$2:$C$100,F2,$D$2:$D$100) という形でSUMIF関数を足していく方法はどうでしょうか? この程度しかお答えできませんが、 ごめんなさいね。m(__)m
お礼
こういうやり方もあるんですね! なかなか大変そうです・・。>< 何度もやり方を考えていただいてありがとうございます!!!
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 参考になるかどうか判りませんが・・・ 一例です。 もし、元データの列変更ができるのであれば、 複数列あるものをまとめて一列の表示にするのが一番良いのですが、 今回の質問はそれができないという前提だと思いますので 無理矢理の方法になります。 ↓の画像のようにかなりの列を作業用の列として使わせてもらっています。 目障りであれば数式を入れた後に非表示にしてもらえると良いかな?って思います。 まず、作業用の列のI2セルに =IF(A2<>"",COLUMN(A1)*100+ROW(A1),"") J2セルに =IF(C2<>"",COLUMN(C1)*100+ROW(A1),"") K2セルに =IF(COUNT($I$2:$J$87)<ROW(A1),"",SMALL($I$2:$J$87,ROW(A1))) L2セルに =IF(K2="","",INDEX($A$2:$D$87,MOD(K2,100),INT(K2/100))) M2セルに =IF(COUNTIF($L$2:L2,L2)=1,ROW(A1),"") という数式を入れ、I2~M2セルを範囲指定し、M2セルのフィルハンドルで オートフィルで下へコピーします。 最後に結果を表示させたいセル F2セルに =IF(COUNT($M$2:$M$87)<ROW(A1),"",INDEX($L$2:$L$87,SMALL($M$2:$M$87,ROW(A1)))) G2セルに =IF(F2="","",SUMIF($A$2:$A$87,F2,$B$2:$B$87)+SUMIF($C$2:$C$87,F2,$D$2:$D$87)) という数式を入れ、F2・G2セルを範囲指定し、G2セルのフィルハンドルで 下へコピーすると画像のような感じになります。 これで今後データが増えても結果に表示されるはずです。 尚、数式は100行まで対応できるようにしていますが、 データ量によってアレンジしてみてください。 以上、かなり強引な方法になりますが、 お役に立てれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m
お礼
むむむ・・・ なんかとっても難しそうですが・・! 今からチャレンジしてみます!!有難うございます!!
- rukuku
- ベストアンサー率42% (401/933)
こんばんは SUMIF関数が使えそうです。 ただし、 >記号と数字が増えても記号ごとの集計ができるような式 を実現するには記号の一覧が必要になります。 データを2列(ABで1列、CDでもう1列 とカウントしています)で入力するのには何か理由がありますか? 「A列に記号、B列に数字」という形であれば「ピボットテーブル」という機能が使えます。
補足
□・△・○の3種類です! データは実際には30列あります・・・(日に集計の月計算の為) 書式が出来上がってますので出来れば今のまま使いたいです!
お礼
これならなんとかできそうです! 的確な回答ありがとうございました!!