- ベストアンサー
2つの条件の下でのデータ抽出
現在データをまとめているのですが、 どのようにデータをまとめる方法があるかわりません。 そこで、質問させていただきます。 例えば、下記のような月曜日は梅干のおにぎり、火曜日はおかかのおにぎりなどのデータがあります。 月 梅干 火 おかか 水 しゃけ 木 おかか 金 おかか 月 おかか 火 おかか 水 梅干 木 梅干 金 おかか これで月曜日は梅干とおかかが1回ずつ、火曜日はおかか2回など・・。曜日ごとにどのおにぎりが多かったかのデータを抽出したいのですがどのような方法があるでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
関数で処理するなら次のようにします。 A1セルからA100の間に曜日があり、B1セルからB100の間に梅干しなどが入っているとします。 お求めの表を作るためにE1セルから右横方向に曜日を入力します。 D2セルから下方に梅干、おかかなどと入力します。 E2セルには次の式を入力し横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(E$1="",$D2=""),"",SUMPRODUCT(($A$1:$A$100=E$1)*($B$1:$B$100=$D2)))
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに回答は出ていますので、参考程度で目を通してみてください。 ↓の画像のように表を作ってみました。 私が好きな「とり五目むすび」が入っていませんので 今後、もしおむすびの種類が増えても対応できるようにしています。 とりあえず、1000行まで対応できる数式にしてみます。 A列が作業用の列になりますので、目障りであればA列を非表示にしてください。 A2セルに =IF(COUNTIF($C$2:C2,C2)=1,ROW(A1),"") として1000行目くらいまでオートフィルでコピーします。 そして、E2セルに =IF(COUNT($A$2:$A$1000)>=ROW(A1),INDEX($C$2:$C$1000,SMALL($A$2:$A$1000,ROW(A1))),"") F2セルに =IF($E2="","",SUMPRODUCT(($B$2:$B$1000=F$1)*($C$2:$C$1000=$E2))) として金曜日までのJ2セルまでオートフィルでコピーします。 最後にE2~J2セルを範囲指定し、J2セルのオートフィルハンドルの(+)マークで 下へずいっ!ずぃ~~~!とコピーすると表のような感じになります。 これで新たにおむすびのメニューが増えても、右側の表に反映されるはずです。 尚、数式の範囲指定はデータ量によってアレンジしてみてくださいね。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してください。m(__)m
お礼
お返事が遅れて申し訳ありませんでした。 ご解答ありがとうございます。 せっかく画像を添付していただいたのにみれません。 もし、よろしければ、もう一度添付していただけないでしょうか?
- kybo
- ベストアンサー率53% (349/647)
ピボットテーブルでいいと思います。 範囲選択→データ→ピボットテーブル→Excelのリストデータベース、次へ→次へ→新規ワークシート、レイアウトで曜日を行、おにぎりの種類を列とデータへドラッグし、OK、完了
お礼
お返事が遅れまして申し訳ありません。 解答ありがとうございました。
お礼
お返事が遅れてもうしわけありませんでした。 おかげで解決できました。 ありがとうございます。
補足
質問ですが、100の代わりに500や1000を入れると、「VALUE」とでるのですが、大きい数字(膨大なデータ)は計算できないのでしょうか? 仮に1000のデータを集計したい場合は、どのような方法があるえしょうか?