- ベストアンサー
エクセルでデータからの選択法
例えばこんなデーターがあるとします サイズ 色 形 金額 大 白 丸 180 大 白 角 160 大 黒 丸 160 大 黒 角 140 小 白 丸 130 小 白 角 110 小 黒 丸 110 小 黒 角 90 金額を表示する為の入力として サイズ 色 形 金額 ※ ※ ※ XXX ※ ※ ※ XXX ※ ※ ※ XXX という風に続けて金額を表示させたいのです。 1行だけならDSUMで出来るのですが… どうかよろしくお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>1行だけならDSUMで出来るのですが… ★ DSUM関数でもできますよ! ***** 元データが A列( サイズ )から D列( 金額 ) 1行目が見出し、データが2行目から100行目の範囲内にあるとします。 集計表が G列( サイズ )から J列( 金額 ) これも1行目が見出しで、2行目以下にサイズ~形は入力済だとします。 ***** ■ DSUM関数 J2セル =DSUM(A$1:D$100,D$1,G$1:I2)-SUM(J$1:J1) または =DSUM(A:D,D$1,G$1:I2)-SUM(J$1:J1) 下にフィルコピーします。 ついでに他の方法も ■ 作業列&SUMIF関数 E2セル( 作業列 ) =A2&B2&C2 データ最終行までフィルコピー J2セル =SUMIF(E$2:E$100,G2&H2&I2,D$2:D$100) または =SUMIF(E:E,G2&H2&I2,D:D) 下にフィルコピーします。 ■ SUMPRODUCT関数( #1の mike_gさんの方がいいと思いますが ) J2セル =SUMPRODUCT((A$2:A$100&B$2:B$100&C$2:C$100=G2&H2&I2)*1,D$2:D$100) 下にフィルコピーします。 ◇ いずれも範囲は適宜変更してください。 ◇ SUMPRODUCT関数はデータ量が多いと重くなります( 処理が遅くなる )。 ◇ 画面上の数式は見づらいかと思いますので、お試しになる場合は上の数式をコピー&ペーストしてください。( 形式を選択して貼り付け~テキストで ) ■ ピボットテーブル マウス操作だけで簡単にできます。 集計用にサイズ・色・形などをあらかじめ入力しておく必要もありません。 ↓を参考にしてください。 ピボットテーブルって何? どうやってつくるの? http://www.microsoft.com/japan/office/experience/workstyle/tips/excel/tips12.mspx http://www11.plala.or.jp/koma_Excel/contents3/mame3026/mame302601.html ご質問の場合は「列のフィールド」には何もドラッグしません。 「ここにデータアイテムをドラッグします」のところに「金額」をドラッグしてください。
その他の回答 (3)
[No.1回答に対するお礼]に対するコメント、 「DSUMでのやり方」の件、了解しました。DSUM を使うなら次のようにすれば可能です。 A B C D 12 サイズ 色 形 金額 13 大 黒 角 140 14 サイズ 色 形 0 15 小 黒 丸 110 16 サイズ 色 形 0 17 大 白 角 160 D13: =DSUM(A$1:D$9,4,A12:C13) 14行目と16行目は、セル D13 を下方に複写する前に あるいは 後で[非表示]にするのです。 A B C D 12 サイズ 色 形 金額 13 大 黒 角 140 15 小 黒 丸 110 17 大 白 角 160
お礼
再度の回答ありがとうございます。 一行おきに項目を設けるのは同じように考えたのですが、 あまりにも不恰好なので却下してました。 項目の行を非表示にするのは思いつきませんでした。 これならDSUMでも出来ますね。
- shikisaito
- ベストアンサー率52% (257/491)
> どのようにやるのか、参考のために、教えてください。 D13=DSUM($A$1:$D$9,$D$1,A12:C13) D14,D15にコピーしても正しく金額が計算できないので、 お困りだったのでしょう。
お礼
回答ありがとうございます。 まさにその通りです。
A B C D 1 サイズ 色 形 金額 2 大 白 丸 180 3 大 白 角 160 4 大 黒 丸 160 5 大 黒 角 140 6 小 白 丸 130 7 小 白 角 110 8 小 黒 丸 110 9 小 黒 角 90 10 11 12 サイズ 色 形 金額 13 大 黒 角 140 14 小 黒 丸 110 15 大 白 角 160 16 D13: =SUMPRODUCT((A$2:A$9=A13)*(B$2:B$9=B13)*(C$2:C$9=C13),D$2:D$9) 》 1行だけならDSUMで出来るのですが… どのようにやるのか、参考のために、教えてください。
お礼
回答ありがとうございます。 DSUMでのやり方はNO.2さんが書かれた通りで、2行目以降が正しい金額がでなかったのです。
お礼
回答ありがとうございます。 DSUMで-の演算が出来るとは思いませんでした。 ただこの方法では、半端な条件を打ち込むと、その条件にあてはまる 全ての合計が出てしまいました。 作業列&SUMIF関数ではバッチリ出来ました。ありがとうございました。改めてexcelの深さを知ることが出来ました。