• 締切済み

エクセル関数についてです。

教えて下さい。 シート2のD列に以下の条件の計算結果を出したいのです。 シート2のA列、B列を文字列で入力します。 参照場所はシート1のA列、B列です。 シート2のA列とB列に入力したものが、 シート1のA列B列に物と一致した項目でシート1のD列の合計をシート2のDに計算で出したいのです。 例 シート2 A1「タイヤ」 B1「Z」と記入    シート1 A1「タイヤ」、A2「ホイール」、A3「タイヤ」          B1「Z]、B2「X」、B3「Z」          D1「1000」、D2「400」、D3「2000」 となっている場合に    シート2のD1にに1000+2000=3000となるように計算式をつくりたいのです。 参照が1つの場合(A列のみ)はSUNIF関数でできたのですが、2つができません。ちなみにエクセル2000です。 よろしくお願いいたします。               

みんなの回答

noname#204879
noname#204879
回答No.4

別解です。 Sheet2!D1: {=SUM((Sheet1!A$1:A$10=A1)*(Sheet1!B$1:B$10=B1)*(Sheet1!D$1:D$10))} ← 配列数式

  • Nantena
  • ベストアンサー率0% (0/2)
回答No.3

いろいろ方法はありますが、分りやすいところでは、 Sheet1にもSheet2にも項目名をデータの最上行に挿入します。 例えば Sheet1のA1には「商品」B1には「型番」C1には「金額」といった具合。 Sheet2のA1にも同じ(ここ重要)「商品」B1に「型番」です。 Sheet2のD1に項目名を入れる必要はありません。 さて、関数ですが、「=DSUM(Sheet1!A1:C4,Sheet1!C1,A1:B2)」です。 関数の意味は、 Sheet1の項目を含むデータベースより、項目「金額」を集計します。 条件は、(Sheet2の)「商品=A2」&「型番=B2」 です。 条件を&にするかorにするかとか、Dsumは色々設定できます。 ヘルプで調べましょう。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です! たびたびごめんなさい。 前回の投稿でSheet1の列が違っていました。 D列に金額が入っているわけですよね? 数式を =IF(COUNTBLANK(A1:B1)>0,"",SUMPRODUCT((Sheet1!$A$1:$A$1000=A1)*(Sheet1!$B$1:$B$1000=B1)*(Sheet1!$D$1:$D$1000))) に訂正してください。 何度も失礼しました。m(__)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 複数条件での集計ですね! 当方使用のExcel2003の場合ですが、 SUMPRODUCT関数で対応できます。 ↓の画像でSheet2のD1セルに =IF(COUNTBLANK(A1:B1)>0,"",SUMPRODUCT((Sheet1!$A$1:$A$1000=A1)*(Sheet1!$B$1:$B$1000=B1)*(Sheet1!$C$1:$C$1000))) という数式を入れ、オートフィルで下へコピーしています。 尚、Sheet1のデータが1000行目まで対応できるようにしていますが、 範囲指定の領域はデータ量によってアレンジしてみてください。 尚、余計なお世話かもしれませんが、 Excel2007であればSUMIFS関数で対応できるはずです。 以上、参考になれば幸いです。m(__)m

関連するQ&A

  • エクセル関数の質問

    よろしくおねがいします。 以下のようなA列B列に数字が何行もあるのですが、 A列の数字(時間なのですが)を二つを別シートに記入すると A列の二つ分の期間を参照してB列の数字の合計や個数を計算したいのですが、 VLOOKでは期間分の値を計算できないので 何かいい方法はないでしょうか? A        B 1000      1 2000     -5 3000      8 4000      1 5000      3 6000      5 7000     -3 8000      2 9000      3 別シートにA列の数字を下記の例のよう二つに入力すると A列の期間を参照してB列の値を計算して B列に全合計 C列に+の合計 D列に-の合計 E列に+の個数 F列に-の個数 を表示させる。 <例1> A   B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 1000 5000  8        13        -5         4        1 <例2> A   B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 6000 9000  7        10        -3         3        1 のような感じで計算したいのですが わかりづらくてすいませんが、分かる方がいたらご教示お願います。

  • エクセル2003の関数について教えて教えて下さい

    どなたかご教授下さい。 現在 ・・・・・・・・・・・・・・・・・・ A列 B列 C列 1 A  100  2 B  100 3 C  100  4 D  100 ・・・・・・・・・・・・・・・・・・ の、条件として A列に入る値が Aの時:B列×0.8 A列に入る値が Bの時:B列×0.5 A列に入る値が Cの時:B列×0.2 A列に入る値が Dの時:B列×1.0 を設定しています。 ですので、現在のシートは ・・・・・・・・・・・・・・・・・・・ A列 B列 C列 1 A  100  80 2 B  100 50 3 C  100  20 4 D  100 100  という状態です。 ・・・・・・・・・・・・・・・・・・・ 今後このシートを参照して 現在AであるC列の値の合計値 現在BであるC列の値の合計値 現在CであるC列の値の合計値 現在DであるC列の値の合計値 をそれぞれを算出し以下のように表示したいと考えています。 現在A→計350 現在B→計200 現在C→計120 現在C→計500 このような計算を行う場合の数式はどのようになるのでしょうか。 良い案がありましたら、どなたかご教授下さい。 宜しくお願いします。

  • エクセルで関数でお聞きします。

    いつもお世話になっています。エクセルで、データを簡単にまとめたいのですが、こんな事が出来る方法がありましたら是非ご教授下さい。 Sheet1              Sheet2     A    B             A    B     1   ++   ああ        1   ++   ああ 2   --   いい        4   ++   ええ 3   **   うう         9   ++   おお 4   ++   ええ 5   //   おお 6   --   ああ 7   **   ああ 8   //   いい 9   ++   おお 10  **   いい 見づらくて申し訳ありませんが、 (1)例えばシート1の中でA列で++と入力された行だけをシート2に飛ばしたい。 ※実際は文字の完全一致では無く頭文字の一致で行いたいです。 (2)シート1で、B列の【ああ】と【いい】と【うう】と入力された個数だけを列の一番下に合計で表示したい 以上どうかご教授ください。

  • エクセル関数の質問

    いつも回答して頂きありがとうございます。 設定用シートの A列 動作内容が入力されている 例)a b c d e... B列 A列の動作内容に対応した動作時間が入力されている 例)0:250:00 0:60:00 ... ※セルの書式設定で分で表示 C列 A列の動作内容に対応した動作時間が入力されている 例)0:250:00 0:60:00 ※セルの書式設定で分で表示 入力用シートのA列に動作内容を入力するとB6に動作内容に応じた動作時間の合計(設定用シートのB列を参照)が表示されるようにしたいと前回質問させて頂きましたが、この時、入力用シートのA列にaが含まれていた場合、設定用シートのC列を参照し合計をだす方法はあるのでしょうか?御教授お願い致します。

  • Excelでどのような関数を使えばいいでしょうか。

    関数について教えて下さい。 Excelで、同じBook内に以下のような2シートがあるときに、 (Sheet1)    A   B    C   D     1  1  あい   12  りんご 2     うえ   34  みかん   3     おか   56  イチゴ 4  1  おか   78  イチゴ (Sheet2)    A   B    C    D     1     あい   11   りんご 2     うえ   34   みかん   3     おか   78   イチゴ 4     うえ   34   みかん  Sheet2のA列にSheet1にあるデータを入れたいのです。 まず、列B,C,Dのそれぞれのデータが横に3つ一致するものを探して 横3つのデータが同じなら、Sheet2のA列に、 Sheet1のA列にあるデータをシートBにも持ってくる、 というようなイメージです。 (Sheet2)    A   B    C    D     1     あい   11   りんご 2     うえ   34   みかん   3  1  おか   78   イチゴ 4     うえ   34   みかん      ↑このようにしたいのです。 A列にどのような関数を入れればいいのでしょう。 (A列にあるのは1か空欄かのどちらかです。 同じ3つの組み合わせで、1の場合と空欄の場合両方があることはありません。) また、Sheet2には、A列に1とついた行に色を付けたいのです。 例えば、上記の例ですと Sheet2のB3:D3のセルに色をつけたいのです。 関数や条件付書式などで、できますでしょうか。

  • Excel比較関数について教えてください。2

    下記のようにA列とC列を比較して、 一致した値が存在する場合、B列とC列を比較して、 E列に全て一致した場合は○、一致しない場合は×にしたいのですが教えてください。 また、A列にあってC列にない場合は、×を表示したいです。 A列 B列 C列 D列 E列 1 12345 aaa 12389 aaa A1とA3が一致&B1とD3が一致したので○ 2 12389 bbb 22222 bbb A2とC1が一致したが、B2とD1が一致しないので× 3 33333 bbb 12345 aaa A3の値がC列にないので空欄 教えてください。

  • Excel 参照行の削除でも可変しない関数

    Excel 参照行の削除でも可変しない関数 同じ形式で、数シートにわたり入力された文字をまとめた表を別のシート(シート1)に作成しています。 シート2以降の参照元データーは一定のルールで入力されていますが、削除や追加が頻繁に行われます。削除や追加の度にシート1B列・C列の関数が参照する行数が追随して可変しないようにしたいのですが可能でしょうか。 具体的には、シート2において6行目から9行目を削除した際に、シート1では「B2=みかん」/「C2=イチゴ」と繰り上がり、B行・C行は常に指定した行を参照するようにしたいと思っています。 <シート1>  A B     C 1 タイトル りんご  ばなな (← 3行目) 2 タイトル かき   なし   (← 8行目) 3 タイトル みかん イチゴ (←13行目) ・B列:「=IF(ISERROR('Sheet2'!$B3:$B3),"",'Sheet2'!$B3:$B3)」 ・C列:「=IF(ISERROR('Sheet2'!$D3:$D3),"",'Sheet2'!$D3:$D3)」 <シート2、3…> 参照したいセルは、B列とD列の3行目、8行目、13行目…と一定の間隔で入力されており、全てのシートにおいて同じ箇所に入力されています。 シートごとにカテゴリーの個数は(図A1:E4までを1カテゴリーと考えています)異なり、作業の度にカテゴリーの追加や削除が頻繁にあります。 うまく説明できているか不安ですが、良い方法を教えてください。

  • エクセル:セルを参照して計算

    お世話になります。 A列にコード番号が、B列に数値が入っています。 A列のコード番号は順不同で重複もあります。 C列にはコード番号の一覧が入っています。(重複なし) C列と一致するコード番号をA列から探し、対応するB列の合計をD列に表示する。 A列に一致するコード番号がないときは0と表示させる。 この場合、D列にはどのような計算式を入力されておけばよいのでしょうか。 例) A1にA、A2にB、A3にC、A4にA、A5にB、A6にD B1に10、B2に20、B3に30、B4に15、B5に20、B6に50 C1にA、C2にB、C3にC、C4にD、C5にE・・・・ この場合 D1には10+15なので25、D2には20+20なので40、D3には30、D4には50、 D5には0を入力する。 よろしくお願いします。

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • Excelの関数について

    お世話になります。Excelにつきましてお願い致します。例えばセルA1からA10にA~J、B1からB10に1~10があります。C1にはB、D2にはEを入力ます。するとA列のBからEに一致したB列の最大値(5)をD3に求めたいのです。宜しくお願いします。 また、グラフのメモリ軸ですが、軸の書式設定の最大・最小値をどこかのセルに入力した値をリンクさせることはできないでしょうか。宜しくお願い致します。

専門家に質問してみよう