データベース抽出とSUMPRODUCT関数

このQ&Aのポイント
  • エクセル2007で請求書NOごとに購入金額を合算して表示する方法について調べています。
  • 同じ購入者に複数の請求書NOが付番されているため、金額の合計が上手くできません。
  • sumproduct関数を試しましたが、エラーが発生しています。
回答を見る
  • ベストアンサー

データベース抽出とSUMPRODUCT関数

データベース抽出とSUMPRODUCT関数 エクセル2007で以下のような表を作って 関数の勉強をしています。 下の画像の上段のシート(シート1)の表が検索フォームです。 下段のシート(シート2)が購入商品リストです。 シート1のA3セルに請求書NOを入力させることで、 B列からE列までにそれぞれのデータを表示させたいのですが シート2に表示されているように、同じ購入者に複数の 請求書NOが付番されているために、購入者ごとに金額を上手く合計できませんでした。 sumproduct関数も使ってみたのですが、エラーが出てしまいました。 例えばAさんは、請求書が1と2がありますが、請求書は 1枚にしたいので、購入金額を合算して、検索表示したいのです。 加えて、請求書NOと購入商品も下の画像のように 一括にして表示することはできるのでしょうか。 初心者で申し訳ないですが、お願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。

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

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

追加質問について・・・ あるセルに「1~5」と表示させたい場合は No.1に書いたように「購入者」が飛び飛びでは全く意味の成さないものになってしまいます。 質問をそのまま単純に受け止めて、必ず購入者は続いているという前提ですが、 お示しの数式では「MATCH」関数部分でエラーになります。 INDEX関数内のMATCH関数の「検査値」が「0」になっていますので、B列にない「0」を検査しています。 それでエラーになります。 無理やりですが、お考えになった数式を使ってみると =B2&"~"&INDEX(B:B,MATCH(MAX(B:B),B:B,0)) (MATCH関数で「照合の型」を「-1」とすることはめったにありません。 通常は完全一致の「0」(FALSE)か、たまに「1」(TRUE)を使うことはありますけど・・・) という感じでしょうか? でも =MIN(B:B)&"~"&MAX(B:B) とか =B2&"~"&MAX(B:B) でも同じ結果になると思いますよ。 最初に書いたようにB列が連番の場合は有効ですが、あまりお勧めできる方法ではないと思います。 それから余談ですが、関数は直接手入力しているのでしょうか? 余計なお世話かもしれませんが、数式バーの左側にある「fx」のアイコンをクリックし 使いたい関数を選択すると「関数の引数ダイアログボックス」が出ますので、そこに一つずつ入力してみてはどうでしょうか? そうすると関数の意味も理解できると思います。 慣れてくればこの画面を出さずに直接入力できるようになるはずです。 もし、この方法で数式を作っていらっしゃるのであればごめんなさいね。m(__)m

その他の回答 (13)

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

前回の数式の訂正です。 すでに入力間違いにお気づきだと思いますが・・・ =COUNTIF(J1:V11,"?*") を =COUNTIF(J1:IV1,"?*") に訂正してください。 何度もごめんなさい。m(__)m

aidorumary
質問者

補足

何度もありがとうございました。 完ぺきです。

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

またまた・・・呼ばれて「ハクション大魔王」のように登場です。 最後の質問ですが・・・ 通常、文字列のセル数を数える場合はCOUNTA関数で対応できますが、 空白でも数式が入っている場合はカウントしてしまいますので、 今回はそれが使用できないと思います。 そこで氏名数を表示したいセルに (氏名がSheet2のJ1セル以降1行目に表示するようにしているとします。K列以降であれば列番号を変更してください。) =COUNTIF(J1:V11,"?*") としてみてはどうでしょうか? 上記の式はSheet2のセルに表示させる場合ですが Sheet1であれば =COUNTIF(Sheet2!J1:IV1,"?*") のようになるかと思います。 尚、当方使用Excel2003の最終列はIV列になりますので、そこまで範囲指定しています。 実際はそれほど必要ないと思いますので、 列の範囲指定は適当に変更してみてください。 これで数式が入っていて、見た目は空白の場合にも対応できると思います。 お役に立ちましたかね?m(__)m

aidorumary
質問者

補足

なるほど、よくわかりました。 そうすると別件なのですが、 現在、請求NOがB列に連番で表示されています。 例えばNOが1、2、3、4、5と表示されている場合 請求書にNO「1~5」と表示したいとき 関数はどうなるのでしょうか。 =b2&"~"INDEX(B:B,MATCH(0,B:B,-1)) でもだめでした。 お願いします。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.11

>できれば購入者ごとの商品と件数も表示できればうれしいのですが・・・ 基本的にこのような集計をするなら、ピボットテーブルを利用することをお勧めします。 この機能を用いれば、自動的に重複のない購入者や購入商品のリストを自動的に作成してくれます(もちろん数式で重複のないリストを表示させることもできますが)。 例えば行ラベルに購入者、列ラベルとΣ値に購入商品をドラッグしてみてください。 また関数で集計して個数を表示させる場合も、配列数式を多くのセルに入力するのは、メモリーを消費するだけでなく再計算に時間がかかるなど問題が発生する可能性があり好ましくありません。 例えばSUMPRODUCT関数は典型的な配列数式ですが、他の関数で代用できる場合はそれを使う必要があります。 エクセル2007ではCOUNTIFS関数で複数条件の個数の集計が簡単にできますので、こちらを利用するようにした方が良いと思います。

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

立て続けにおじゃまします。 前回のSheet2の表でJ列は必要ないと思います。 Sheet2のJ列すべてを削除してみてください。 K列以降が左側に移動してエラーになると思いますので J2セルにもう一度↓の数式を入れて列・行方向にオートフィルでコピーしてみてください。 Sheet2のJ2セルに =IF(OR($H2="",J$1=""),"",SUMPRODUCT(($B$2:$B$1000=J$1)*($C$2:$C$1000=$H2))) です。 さて、次にSheet1の表の方ですが、↓の画像のようにしてみました。 Sheet1のA2セルに購入者の氏名を入力するとその人のデータが表示されます。 (もちろん請求NOは飛び飛びでもかまいません) Sheet1のB2セルに =IF(OR($A$2="",COUNTIF(Sheet2!$B$2:$B$1000,$A$2)<ROW(A1)),"",INDEX(Sheet2!$A$2:$D$1000,SMALL(IF(Sheet2!$B$2:$B$1000=$A$2,ROW($A$1:$A$999)),ROW(A1)),MATCH(B$1,Sheet2!$A$1:$D$1,0))) これは配列数式ですので、Shift+Ctrlキーを押しながらEnterキーで確定です。 これをD2セルまでオートフィルでコピーし、B2~D2セルを範囲指定 → D2セルのフィルハンドルで下へコピーします。 最後にE2セルに =IF(A2="","",SUM(D:D)) という数式を入れています。 以上、親の仇のように顔を出してしまいましたが 参考になりますかね?m(__)m

aidorumary
質問者

補足

いろいろありがとうございます。 大変参考に、勉強になっています。 情報の洪水でおぼれそうですが(笑)。 少し整理してみます(笑) また、よろしくお願いします。 エクセルは奥が深いです!

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

またまたお邪魔します。 交換日記状態ですが・・・ 前回の補足に二点質問がありましたが 両方とも画像があったほうが理解しやすいと思いますので、 一つずつ投稿します。 (画像を二つ並べると小さくて見えにくいと思うので) まず、 >できれば購入者ごとの商品と件数も表示できればうれしいのですが・・・ についてです。 前回同様Sheet2に表示させるとします。表の配置も↓のようにした方が良いかもしれません。 せっかく前回商品名を重複なしに表示していますので、それを利用するようにしてみました。 画像では左側部分が途切れていますが、前回と同じSheet配置だと思ってください。 作業用の列をもう1列追加しています。 これで購入者を重複なしに表示させます。 (実は前回の商品を重複なしに表示させる方法とまったく同じで、今回は列方向にしているだけです) 作業列F2セルに =IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"") として下へコピー J2セルは =IF(H2="","",H2) としてこれも下へコピー!(H列とまったく同じ表示になります。) K1セルに =IF(COUNT($F$2:$F$1000)<COLUMN(A1),"",INDEX($B$2:$B$1000,SMALL($F$2:$F$1000,COLUMN(A1)))) という数式をいれ、列方向(右方向)にコピー 最後にK2セルに =IF(OR($J2="",K$1=""),"",SUMPRODUCT(($B$2:$B$1000=K$1)*($C$2:$C$1000=$J2))) という数式をいれ、列・行方向にコピーすると 画像のような感じになります。 尚、オートフィルのコピーはデータが表示されなくても良いですので、 しっかり多めにコピーしておきます。 これでSheet2の元データが増えても自動で表示されます。 とりあえず一つ目はこれで良いでしょうか? もう一つの質問に関してはこの後投稿しようと思いますが、 表の配置そのものを変更し、 氏名を入力するとその人のデータすべてを表示したほうが良いと思います。m(__)m

aidorumary
質問者

お礼

tom04さん、ありがとうございました。 最後に、K列から右に表示されている氏名だけをカウントする方法 はあるのでしょうか。 氏名の件数と請求書の枚数は 同じになると思うので、チェックしたいのです。 よろしくお願いします。

aidorumary
質問者

補足

ありがとうございました。 できました~。 完ぺきでした。 いろいろ助かりました~。 また、よろしくお願いします。

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

No.1です! 補足を読ませてもらいました。 >購入商品の件数を、種類ごとにカウントしてどこかに表示することはできるのでしょうか・・・ とありましたので、再び顔を出しました。 1行が1件としています ↓の画像のようにSheet2に表示させるとして、 作業列を1列設けています。 作業列E2セルに =IF(COUNTIF($C$2:C2,C2)=1,ROW(A1),"") という数式をいれ、オートフィルでずぃ~~~!っと下へコピー そして、G2セルに =IF(COUNT($E$2:$E$1000)<ROW(A1),"",INDEX($C$2:$C$1000,SMALL($E$2:$E$1000,ROW(A1)))) H2セルに =IF(G2="","",COUNTIF($C$2:$C$1000,G2)) (前回同様Sheet2の1000行目まで対応できる数式です) という数式をいれ、G2・H2セルを範囲指定し、H2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、今回はすべての商品を表示するようにしていますが ある特定の商品だけを表示したい場合は少し変わってきます。 以上、参考になればよいのですが・・・m(__)m

aidorumary
質問者

補足

ありがとうございます。 完ぺきです! できれば購入者ごとの商品と件数も表示できれば うれしいのですが。 あと、例えばAさんの請求書NOがとびとびになる時 (例えば1と3と5と7とかに入る場合) 請求書NOの表示がリストと合わず、困ったことになってしまいました。 tom04さんの言われたとおりです。 請求書NOの表示は最初から最後ではなく 氏名の分はすべてシート1にNO表示することは可能なのでしょうか。 注文ばかりですいません。 よろしくお願いします。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.7

私の例示したレイアウトの方が良いと思ったのであえて記載しませんでしたが、質問で最初に例示されたレイアウトの表のように請求書一括Noをセルに表示したいなら、私の添付画像のレイアウト(F6セルに請求書番号)で数式を作ると以下のようになります(請求書番号の最初の番号をF6セルに入力)。 =F6&"~"&MAX(INDEX((B2:B10=F2)*A2:A10,)) 他のセルの値も、すでに提示した数式のセル位置を変更すれば、それぞれの値を簡単に表示できると思います。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

関数でやりたいらしいが、関数の複雑な式を考えるのも良いが、マクロの記録で出来る典型的な場合である。 それであえて説明してみる。 例データ 請求書No 購入者 購入商品 購入金額 1 A チョコ 2000 2 A アイス 1500 3 B ガム 3000 4 C クッキー 500 5 C チョコ 800 6 D アイス 1200 7 D グミ 1200 8 F グミ 300 9 E ガム 4000 10 E ガム 5000 ーー 準備 条件その他 F2:H15 購入者 殿 <--F2、H2に見出しとして入力 D   <--F3に式 =G2、しょしきでフォント色を白色にいて見えなくする。 請求金額       <--F4F2、H2に見出しとして入力 G4に=SUM(H6:H10) 請求書No 購入商品 購入金額 <--F5:H5 ーーー 操作 ツールーマクロー新しいマクロの記録 Ctrl+のとことで F OK データーフィルターフィルタオプションの設定 指定した範囲にチェック リスト範囲  $A$1:$D$11 検索条件範囲 $F$2:$F$3 抽出範囲 $F$5:$H$15 OK ーーー 結果 購入者 D 殿 D 請求金額 2400 請求書No 購入商品 購入金額 6 アイス 1200 7 グミ 1200 ーーーー G2セルを A に変えて、CTRL+SHIFT+F を押す。 購入者 A 殿 A  <--見えない 請求金額 3500 請求書No 購入商品 購入金額 1 チョコ 2000 2 アイス 1500 となる。 ーーー 自動印刷をするなら 標準モジュールに在る下記コードで、最後に1行印刷コードを追加 Sub Macro2() ' ' Macro2 Macro ' ' Keyboard Shortcut: Ctrl+Shift+F Range("A1:D11").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _ "F2:F3"), CopyToRange:=Range("F5:H13"), Unique:=False Range("F2:H15").PrintOut  <---この1行を追加 End Sub

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

回答No4です。 シート1のB2への式は次のように訂正してください。 =IF(AND(COLUMN()=2,ROW(A1)=1),$A$2&"~"&INDEX(Sheet2!$A:$A,MATCH($A$2+1,Sheet2!$E:$E,1)),IF(AND(COLUMN()=3,ROW(A1)=1),VLOOKUP($A$2,Sheet2!$A:$B,2,FALSE),IF(AND(COLUMN()=4,ROW(A1)<MATCH($A$2+1,Sheet2!$E:$E,1)),INDEX(Sheet2!$C:$C,MATCH($A$2+0.01*ROW(A1),Sheet2!$E:$E,0)),IF(AND(COLUMN()=5,ROW(A1)=1),SUM(INDEX(Sheet2!$D:$D,MATCH($A$2+0.01,Sheet2!$E:$E,0)):INDEX(Sheet2!$D:$D,MATCH($A$2+1,Sheet2!$E:$E,1))),""))))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

シート1にお望みのような表を作るためにはシート2に作業列を設けて対応します。 E2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(B2<>B1,A2+0.01,E1+0.01)) シート1ではA2セルに請求書NOを入力します。 B2セルには次の式を入力してE2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(AND(COLUMN()=2,ROW(A1)=1),$A$2&"~"&MOD(INDEX(Sheet2!$E:$E,MATCH($A$2+1,Sheet2!$E:$E,1)),1)*100,IF(AND(COLUMN()=3,ROW(A1)=1),VLOOKUP($A$2,Sheet2!$A:$B,2,FALSE),IF(AND(COLUMN()=4,ROW(A1)<MATCH($A$2+1,Sheet2!$E:$E,1)),INDEX(Sheet2!$C:$C,MATCH($A$2+0.01*ROW(A1),Sheet2!$E:$E,0)),IF(AND(COLUMN()=5,ROW(A1)=1),SUM(INDEX(Sheet2!$D:$D,MATCH($A$2+0.01,Sheet2!$E:$E,0)):INDEX(Sheet2!$D:$D,MATCH($A$2+1,Sheet2!$E:$E,1))),"")))) これでシート1にはお示しのようなデータが表示されます。

関連するQ&A

  • SUMPRODUCT関数で困っています

    エクセル2007にて、SUMPRODUCT関数を使ってデータ集計をしたいが 下記の現象で困っています。 SUMPRODUCTの特徴として参照先(sheet1)の指定範囲 「($B$2:$E$6)の範囲を($B$2:$G$20)」を変更すると SUMPRODUCT関数がn/aになり値が表示できない。 (やりたいこと) sheet1に元データが入力されています。    A    B    C    D    E 1 NO 社名 商品 購入日 金額 2 01 A商事 肉 1/3 50円 3 02 B電気 野菜 1/10 70円 4 02 B電気 肉 1/12 50円 5 03 C工業 魚 1/20 60円 6 03 C工業 肉 1/30 50円 sheet2はsheet1より必要なデータを、NOをキーにして、 社名・商品・金額を VLOOKUP関数にて取ってきて表示しています。    A    B    C    D    E 1 NO 社名 商品 金額 2 01 A商事 肉 50円 3 02 B電気 野菜 70円 4 02 B電気 肉 50円 5 03 C工業 魚 60円 6 03 C工業 肉 50円 6 03 C工業 鉄 90円 sheet3はsheet2より必要なデータを、NOをキーにしてSUMPRODUCT関数にて取ってきて表示しています。 次の式をB1に入力しています (=SUMPRODUCT((sheet2!$A$2:$A$6=A2)*(sheet2!$B$2:$B$6=B2<>"鉄")*(sheet2!$D$2:$D$6=D2))    A    B    C    D    E 1 NO 金額 2 01 50円 3 02 120円 4 03 110円 sheet3はsheet2より必要なデータを、NOをキーにしてSUMPRODUCT関数にて取ってきて表示しています。 次の式をB1に入力しています (=SUMPRODUCT((sheet2!$A$2:$A$6=A2)*(sheet2!$B$2:$B$6=B2"鉄")*(sheet2!$D$2:$D$6=D2))    A    B    C    D    E 1 NO 金額 2 03 90円

  • SUMPRODUCT関数について

    よろしくお願いいたします。EXCEL2013使用です。 上の画像、出張者リスト(名前、出発日、帰国日)から、別のシートに一目でわかる一覧表を作りたいのです。例えば、11/06-11/15まで出張だったとしたら、下の表で6日から15日までを黄色背景にする、等です。 下の表で、日付セルの下の各セルに次のような関数を入力しましたがうまく動作しません。 =SUMPRODUCT((リスト!$B$2:$B$300=$A4)*(INT(リスト!$C$2:$C$300)>=INT(B$2))*(INT(リスト!$D$2:$D$300)<=INT(B$2))) ※下の画像は12月ですが、その上に11月があり、上記関数内のセルのアドレスが間違っている訳ではありません。 SUMPRODUCT関数は大変便利なのでこれまで多用してきましたが、今回は完全に頓挫してしまいました。 どこがいけないのでしょうか。おわかりの方、是非ご教示下さいませ。 どうぞよろしくお願いいたします。

  • SUMPRODUCT関数について

    SUMPRODUCT関数について いつもお世話になっています。 以前こちらでSUMPRODUCT関数を教えていただき大変統計がしやすくなり、 仕事が効率化しました。ありがとうございます。 ところで、SUMPRODUCTだと思うのですが、計算式がうまく組み立てられないのでご質問させていただきます。 A列に部門名、B列に実施日が入力されているエクセルシートがあり、 部門ごとの実施件数を出したいのです。 SUMPRODUCT((A2:A100="○部門")*(CAUNTA(B2:B100))) としてみましたがうまくいきません。 たぶん *(CAUNTA(B2:B100)) の部分がいけないのだろうとは思うのですが、どう変化させればいいのでしょうか? 関数の選択が間違っているのかもしれない、とは思うのですが、適切なものが分かりません。 ご教授お願いします  

  • データベースとデータの抽出について

    データベースとデータの抽出について エクセル2003で以下のような、表を作っています。 データは現在、A列に10000万件程度入っています。 4列目の購入日付データの年、月、日がそれぞれのセル(D2、E2、F2) に分割入力されています。 このデータベースから、氏名と購入日付を基準キー にして、顧客NOと購入日付(1つのセルに結合)、 購入商品を抽出し、シート2に転記していきたいです。 抽出方法は、シート2に以下のような形で検索  表示したいです。 (シート2) 氏名(B1に表示)→C1に入力 抽出開始年月日(D1に表示)→年はE1、月はG1、日はI1に入力  抽出終了年月日(D2に表示)→年はE2、月はG2、日はI2に入力 検索後、表示される顧客NOと購入日付、購入商品は 同じシート2の以下のセルに表示したいです。 顧客NO(L1に表示)→L2から下に表示 購入日付(M1に表示)→M2から下に表示 購入商品(N1に表示)→N2から下に表示 したいです。 日付が分割入力されているため、抽出がうまくできません。 氏名、または名字だけでうまく検索できるコードはあるでしょうか。 どうぞよろしくお願いします。

  • SUMPRODUCT関数とROUND関数を一緒に

    幾度どなくお世話になっております。 4月からEXCEL中心の仕事になりましたが、まだまだ超初心者です。 今回は、ブック中の結合_OKシートのPセル列の文字がブック中の別シートのA列に記載している文字と一致したらその数分の結合_OKのAOセルに記載している金額を合計した値を別シートのB列に、整数値で表示させようとしています。 結合_OKのAOの金額のセルの数字は小数点3桁表示になっています。 ROUND関数を式に入れなければ、以下の式で、エラーは出力されず、別シートのB列に金額は出せましたが、この式にROUND関数を入れる為に色々とやってみましたが、エラーが表示されてしまっています。 =SUMPRODUCT((結合_OK!$P$3:$P$1000=$A2)*結合_OK!$AO$3:$AO$1000) 以下ではエラーが出ます =ROUNDDOWN(SUMPRODUCT((結合_OK!$P$3:$P$1000=$A2)*結合_OK!$AO$3:$AO$1000)) 因みに、結合_OKシートのPセル列には、空白のセルが混在している為、ブック中の別シートのA列に記載している文字は、手作業で作成しています。 別シートのA列、B列は以下のような記載です。  ID    合計金額 22NM5001 29470 22NM5002 11660 22NM5005 12045 22NM5007 2200 22NM5011 5500 22NM5012 16280 大変、お手数ですが、SUMPRODUCTとROUND関数を一緒に記載する方法を教えて頂けると大変助かります。 また、上記の式についても、SUMPRODUCT関数が最適なのか分からず使っています、こちらについてもご教示頂けると大変幸いです。 分かりずらい説明ではありますが、よろしくお願いいたします。

  • SUMPRODUCT関数の使い方

    いつもお世話になっております。SUMPRODUCT関数の使い方が解らず困っています。 どなたか、教えてください。 I列(3~1034)に101と入力されており、F列(3~1034)に○と入力されているセルの数を数えたくて、 SUMPRODUCT関数を使いましたが、答えが0になるか、NAME?になるかで、正答が表示されません。 関数が苦手なので、SUMPRODUCTは、関数の表示ダイアログボックスを使って作成しています。 すると、配列1、配列2、配列3と出てくるので、 配列1に I3:I1034=101 配列2に F3:F1034=○ (絶対参照して)入力すると =SUMPRODUCT($I$3:$I$1034=101,$F$3:$F$1034=○) となり、答えは #NAME? と出てしまいます。 また、やり方が解らないのですが、他の質問の回答をみて、SUMPRODUCT関数を手入力し、 =SUMPRODUCT(($I$3:$I$1034=101)*($F$3:$F$1034=○)) と修正入力すると、答えは 0 になってしまいます。 (だいたい、どうして * が出てくるのかも理屈が解りません。) 101や○を””でくくっても、うまくいきません。 もはや何がどう良くないのかわかりません(泣) どなたか、素人の私にも解るようにご解説お願いいたします。

  • SUMPRODUCT関数について

    アンケートの集計をするにあたって、 SUMPRODUCT関数を使いました。 シートが2つあります。 【データ】シート・・・アンケートのデータ A:No. B:データ 1   0 2   1 3   2 4   3 5  空欄が入っている ・ ・ 【集計】シート・・・B列の空欄、1~3の個数を集計する B列に数式 =SUMPRODUCT((データ!$A$4:$A$40000<>"")*(データ!B$4:B$40000=$A4)) を入れました。 A  B 0  2 ・・・・※ 1  1 2  1 3  1 空欄 2・・・・※ 0(ゼロ)と空欄を区別しないで同じと計算してしまいます。 データに、ゼロと空欄が混在している場合、SUMPRODUCTは使えないのでしょうか? この場合、どの数式を使うのがベストでしょうか? 分かりにくくて申し訳ありませんが、 宜しくお願い致します。

  • SUMPRODUCT関数

    エクセル2003を使っています。 sumproduct関数で条件付の合計計算をしたいのですが 計算できる列とできない列があります。 計算可能な書式をできない列にコピーしても変わらなくエラーになります。(#VALUE!) 試しに同じ数値をCSVで保存したシートでは計算できました。 考えられる要因と対策は何でしょうか。

  • SUMPRODUCT関数について

    SUMPRODUCT関数を使いA列の対象値(LEFT関数を使い左一文字を検索対象としC列の該当値の合計を集計していますがLEFT関数で検索対象を複数にする場合はどのようにすればいいのでしょうか? 下記の場合はsとdを検索対象としたいのですが。 宜しくお願いいたします。   A  B  C 1 sb    20 2 sc    30 3 sd    40 4 db    50 5 dc    60

  • SUMPRODUCT関数で0(ゼロ)と

    はじめまして。arumikan091と申します。 (Excel初心者です(^^;) ExcelのSUMPRODUCT関数について質問があります。 A B (1) 2 0 (2) 2 4 (3) 2 (空白) (4) 2 3 (5) 2 0 (6) 3 4 (7) 3 (空白) というシートの中で、 "A列が2で、かつB列が0の個数を数える" ということをしようと思い =SUMPRODUCT((A1:A7=2)*(B1:B7=0)) と入力したのですが、 これだとB列の0(ゼロ)と一緒に""(空白)も 数えられてしまうようです。 (上記シートだと式の期待値は2なのですが、 実際値は3が返ってきます) このような場合、0(ゼロ)だけを数えられる ようにするにはどのようにすればいいか 教えていただけたら幸いです。 一応、自分でも少ない知識の中で色々トライしてみて、 =SUMPRODUCT((A1:A7=2)*(B1:B7=0))-SUMPRODUCT((A1:A7=2)*(B1:B7="")) のように式を入力するとちゃんと0(ゼロ)だけを 数えてくれるようなのですが、さらに簡単な 方法がありましたら教えてください。 Windows ME、Excel2000です。 ※1 B列単独で =COUNTIF(B1:B7,0)とするとちゃんと 0(ゼロ)だけを数えてくれます。 ※2 一応既存のQ/A集で同じ質問がないか探しましたが、 (「SUMPRODUCT 空白セル」のANDで) 同様、類似の質問が既にありましたら 申し訳ありません。 長文失礼しました(m_ _m

専門家に質問してみよう