- 締切済み
エクセル関数についてです。
教えて下さい。 シート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です。 よろしくお願いいたします。
- みんなの回答 (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)
いろいろ方法はありますが、分りやすいところでは、 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.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)
こんばんは! 複数条件での集計ですね! 当方使用の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