• ベストアンサー

エクセルでデータからの選択法

例えばこんなデーターがあるとします サイズ 色 形 金額 大 白 丸 180 大 白 角 160 大 黒 丸 160 大 黒 角 140 小 白 丸 130 小 白 角 110 小 黒 丸 110 小 黒 角  90 金額を表示する為の入力として サイズ 色 形 金額 ※  ※ ※ XXX ※  ※ ※ XXX ※  ※ ※ XXX という風に続けて金額を表示させたいのです。 1行だけならDSUMで出来るのですが… どうかよろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.3

>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 ご質問の場合は「列のフィールド」には何もドラッグしません。 「ここにデータアイテムをドラッグします」のところに「金額」をドラッグしてください。

wantaro1
質問者

お礼

回答ありがとうございます。 DSUMで-の演算が出来るとは思いませんでした。 ただこの方法では、半端な条件を打ち込むと、その条件にあてはまる 全ての合計が出てしまいました。 作業列&SUMIF関数ではバッチリ出来ました。ありがとうございました。改めてexcelの深さを知ることが出来ました。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

[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

wantaro1
質問者

お礼

再度の回答ありがとうございます。 一行おきに項目を設けるのは同じように考えたのですが、 あまりにも不恰好なので却下してました。 項目の行を非表示にするのは思いつきませんでした。 これならDSUMでも出来ますね。

回答No.2

> どのようにやるのか、参考のために、教えてください。 D13=DSUM($A$1:$D$9,$D$1,A12:C13) D14,D15にコピーしても正しく金額が計算できないので、 お困りだったのでしょう。

wantaro1
質問者

お礼

回答ありがとうございます。 まさにその通りです。

noname#204879
noname#204879
回答No.1

   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で出来るのですが… どのようにやるのか、参考のために、教えてください。

wantaro1
質問者

お礼

回答ありがとうございます。 DSUMでのやり方はNO.2さんが書かれた通りで、2行目以降が正しい金額がでなかったのです。

関連するQ&A

  • エクセルのデータベース関数について

     DSUMなどのデータベース関数の条件(クライテリア)の指定において,複数の条件を指定できるのでしょうか?  例えば,布について,フィールドに色(黒,白,赤,黄,緑),値段,大きさ(大,中,小)があるデータベースの中から,色が黒と白,大きさが大のものの値段の和を求める場合,セルに   A B 1 色 大きさ 2 黒 大 3 白  というような,クライテリアの指定ができるのでしょうか?このとおり指定しても,上手く計算されてこないのですが?Aで色を黒と白と複数指定できないのでしょうか?

  • エクセルの関数について教えてください

    仕事でエクセルを使ってリストを作っています。 下記の場合、使える関数がありましたら教えてください〰(ーー;) 質問伝わりづらく申し訳ないのですが… 形(1)の行には、"S"か"K"のどちらかが入ります。 形(2)の行には、"丸"か"角"のどちらかが入ります。 その横の行にはメーカー名を入れたいのですが “S"で"丸"の場合→日立 "K"で"角"の場合→東芝 とゆう風に入力する関数はありますか? 分かりづらくてすみません! 分かる方いらっしゃいましたらお願いします◟꒰◍´Д‵◍꒱◞

  • エクセル2003 横のデータを縦に並べたいです。

    以前にも同じような質問をされている方がいるかもしれませんが、 どなたかお知恵をお貸しください。 関数を使用して処理したいと考えております。 下記にファイルの一部を抜粋致しましたので、 ご教授のほど宜しくお願い致します。 現在の形    A      B      C      D      E 1 SHIRTS カラー黒  サイズ38  サイズ39  サイズ40 上記のような形で4000行くらいあります。 列は最長でABまで使用しております。 上記のようなデータを下記のような形に並べ替えたいと思っております。 希望の形    A      B      C 1 SHIRTS カラー黒 サイズ38  2 SHIRTS カラー黒 サイズ39 3 SHIRTS カラー黒 サイズ40 サイズの展開を横表示から縦表示に変更したいのです。 素人質問で申し訳ありませんが、どなたか宜しくお願い致します。

  • 2つの条件から1個のデータを導き出す関数が分かりません。

    excelで売上集計表を作っているのですが、関数が分からなくて困っています。VLOOKUPやDSUMなどは知っているのですが、2つの条件から1個のデータ抽出する方法が分かりません。 (例)サイズ+色 → 該当する値段  など 【列】カラー 【行】サイズ → 【交わるセル】値段 という表(1)が参照元として有ります。 その参照表とは別に表(2)として、【A列】には購入者を【B列】カラー 【C列】サイズ と入力していく管理表で【D列】に同じ行の「カラー」と「サイズ」を参照して、別表(1)の価格を自動表示できるような関数を入力したいのです。このようなケースの場合どのような関数を入力すればよいのでしょうか。

  • エクセルのDSUM関数について

    =dsum(データーベース、フィールド、条件) の条件のところにいれたが反応せず、ただ”フィールド”の列を合計したものがかえってきてしまうのですが。 =DSUM(C59:E90,E90,C114:E115) C59 D59 E90 分類 媒体 金額 行の90までデーターが入っています。 C114 D114 E114 分類 媒体 金額 行の114まで条件が入力できるようになっています。 分類・媒体・金額の部分はセルを2行結合しているのですが、条件の部分もセルを結合しています。 フィールド名が結合したセルだとDSUMはつかえないのでしょうか?

  • コマンドボタンを押したら テキストボックに表示されてる値と同回数実行させるには?

    XP Excel2000 受注管理システムを作成しています。 型番で サイズと色があり 今まで(サイズ)×(色)の数だけ コマンドボタンを押し、Excel-Sheetへ貼り付けていました 少ないサイズと色なら さほど問題は無いのですが サイズと色が多くなるにつれて 一つ一つ実行させていくのが 無駄に感じ 一括処理を考えています。 〔UserForm1〕へ 〔TextBox〕が縦6×横10、並んでいます 行がサイズ、列が色 交わった箇所に受注数を入力し 〔CommandButton〕を押せば 瞬時にExcel-Sheetへ貼り付けたいのです 〔TextBox〕には数値が入力されている箇所と 数値が入っていない箇所があります。 〔TextBox〕に数値が入っている箇所の個数を 別の〔TextBox〕に 表示し その数値と同じ回数の実行を行いたいのですが 値が入っている箇所を左から順番に実行させる為には どんなコードにすればいいのか 教えてください。 ◆ ◆ ◆ ◆ ◆ … ←色 ▼〔〕〔〕〔〕〔〕〔〕… ▼〔〕〔〕〔〕〔〕〔〕…  ▼〔〕〔〕〔〕〔〕〔〕… ▼〔〕〔〕〔〕〔〕〔〕… ↑サイズ 〔TextBox〕の縦6×横10は 該当しない場合は VisibleをFalse⇔Trueで 表示/非表示にする予定です (これもまだ解決していません。) 例えば 型番 001-12345 サイズ…3  色…4    白  黒  赤 ◇ ◇ … ←色 12〔10〕〔30〕〔 〕〔〕〔〕… 14〔  〕〔  〕〔50〕〔〕〔〕…  16〔20〕〔40〕〔  〕〔〕〔〕… ▽〔  〕〔  〕〔  〕〔〕〔〕… ↑サイズ 〔CommandButton〕を押せばExcelSheetへ No. サイズ 色  枚数  1  12  白  10  2  12  黒  30  3  14  赤  50  4  16  白  20  5  16  黒  40 こんなふうに やりたいのです。 お願いします。 教えてください

  • エクセルのDSUM関数の使い方は間違ってるのでしょうか?

    以下に対辺見難いですが表を貼り付けています。 一番上の行が列名です。 一番左の列が行名です。    A      B     C 1  品名    色    個数 2  いす    黒     5 3  机     茶     3 4  机     白      4 5  いす    赤     2 6  いす    茶     9 7 8  品名    色     個数 9  いす  合計個数  23 合計個数の右に表示しているのがDSUM関数で求めた値です。 しかし、結果がおかしいのです。 計算式は =DSUM(A1:C6,C1,A8:C10) これだと、通常はいすの個数を探して合計されるので16になるはずです。 しかし、関数で出た答は、全部の合計でした。 どこが、おかしいのかご指摘お願いします。

  • エクセルで同じことを繰り返す

    かんたんすぎるのかも知れませんが教えてください。 たとえば、セルの行の色を一行ずつ白、黒、白、黒、白、黒とゼブラのようにする簡単な方法ってあるんでしょうか。  また行を日付、列を月にしてカレンダー表を多数同じシートに作成した場合、ひとつのカレンダー表に28日ごとにセルの様式を変更する作業を行うと、残りのカレンダー表がすべて変更される。こんなことできるのでしょうか。

  • エクセル/データの入力規則/フィルターが効かない

    お世話になります。 社員の人事データに係る20列×200行のエクセルシートがあります。 ある列に「データの入力規則」にて「入力値の種類」をリストにし、「元の値」の箱の中に3個の選択肢(例えばA,B,C)をカンマで区切って入力し、その列の入力の際にその3個の選択肢をプルダウンで選択できるようにしてから、200行(200個のセル)にAまたはBまたはCの入力をしました。 その後、1列目の項目の行にフィルターをかけ、A(またはBまたはC)が入力されたデータのみ表示させたいのですが、上から150行目まではちゃんとフィルターが掛かるのですが(即ち、A(またはBまたはC)が入力されたデータのみが表示される)、151行目以降はフィルターがかからず、A、B、C全てのデータが表示されてしまいます。 また、この時、エクセル左端の行番号の数字の色が、150行目までは青色ですが、151行目以降は黒色となっており、151行目前後で何かが違っているようです。 但し、自分自身では何かを変えたつもりは全くなく、何故151行目以降でフィルターが効かないのかが全く分かりません。 また、上記と全く同じこと(「データの入力規則」設定後に入力+フィルター)を別のエクセルファイルで行いましたが、そこでは200行全てがちゃんとフィルターが掛かっています。 何故151行目以降でフィルターが効かないのでしょうか? また、解決策は何かあるでしょうか?

  • エクセル2010のテーブル

    こんにちは。 エクセル2010でテーブル(表)を作成(色はデフォルト⇒少し濃い青色)した時に、 見出し行(▽ボタンがある行)の文字の色を白から黒にしたいのですが、 黒を選択しても自動で白に戻ってしまいます。 文字自体を「列1」とかから「テスト」とかにかえてから文字色を変えようとしてもダメでした。 どうしたら文字色をかえられるか分かる方いたら教えてほしいです

専門家に質問してみよう