• 締切済み

エクセル2003 SUMPRODUCT

jcctairaの回答

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.3

kero1192keroさん こんにちは。 =SUMPRODUCT((アラーム履歴一覧!$B$2:$B$100=Sheet2!$B5)*(アラーム履歴一覧!$C$2:$C$100=Sheet2!C$3)*((アラーム履歴一覧!$D$2:$D$100=Sheet2!C$4)+(Sheet2!C$4&""=""))*(アラーム履歴一覧!$E$2:$E$100=Sheet2!$D$1)) 上記の式でできると思います。 ご確認下さい。

kero1192kero
質問者

お礼

返事が遅くなってすみません。 さっそく貼り付けてみた所、他の条件が無視されて、D列に入力されている個数が表示されました。自分が思ったような事はNo.1さんの式で実現されています。

関連するQ&A

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

    エクセルで作成した表から ○○かつ●●のデータ個数を求めたく、 SUMPRODUCT関数を こちらで調べておりましたが どうしても解決しない部分があります。 どうぞ よろしくお願いいたします。 下記8桁数字は、日付です。 カウントしたい数は、B列(終了)が、A1セルに入力された年月かつ、区分(C列)が「A」の数です。 =SUMPRODUCT((LEFT(B2:B100,6)=A1)*(C2:C100="A")) こちらで、『B列=A1セル かつ C列="A"』のみのカウントは出来たのですが、 終了延長(D列)が空欄でない場合は、D列日付データの方をカウントする。 早期終了(E列)が空欄でない場合は、D列・B列よりも E列を優先し、カウントする。という条件を付けたいのですが、 Sheet1 A1セルに「200810(数を調べたい年月を入力)」 (開始)  (終了)     (区分)  (終了延長)  (早期終了)  A列     B列      C列     D列      E列 20061001   20081001   A    -        - 20070926   20081020   A    -        - 20071102   20081009   A    20081201    - 20080101   20081013   B    -        - 20080208   20081010   A    -        20080210 ・・・ この場合、「2」となるようにです。 IF、OR関数あたりかな と考えておりますが、SUMPRODUCT関数のどの部分で条件付ければ良いか解りません。 説明下手で大変申し訳ございませんが、ご助力いただければ幸いです。 

  • エクセル関数(SUMPRODUCT)について教えてください。

    SUMPRODUCTを使って、件数を出しています。   A    B(抽出条件を入力) 1都道府県  ● 2職業    ● 3性別    ● 4購買日   ●    A    B    C   D     11 都道府県  職業   性別  購買日   12 東京    会社員  男   20080901  13 ・      ・   ・    ・     14 ・      ・   ・    ・     15 ・      ・   ・    ・     上記のような表を作り、A11:E100までデータが入っています。 B1:B5に条件を入れて、C1:C4に =SUMPRODUCT(($A$12:$A$100=$B$1)*($B$12:$B$100=$B$2)*($C$12:$C$100=$B$3)*($C$12:$D$100=$B$4)*1) で件数をカウントしています。 抽出条件をすべて指定すると、件数が出てきますが、特に指定しないで 空欄のままで件数をカウントする方法はないでしょうか? (たとえば、職業を絞らないでほかの条件だけで抽出するとか) 何か解決策を教えてください。

  • 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とcountifの使用例

      A B C D E 1 あ あ あ が い 2 い う か ぎ え 3 う い さ ぐ ん 4 え え た げ あ 5 お お な ご げ =SUMPRODUCT((COUNTIF(A1:D5,E1:E5)>0)*1) 上記は重複している個数が何個あるか(同じデータが複数回でてきても1個とカウントする)を出す関数なのですが、 sumproductとcountifの部分は大体理解できるのですが、 「>0」の部分と、「*1」の部分がどうしても理解できず、悩んでいます。 内部ではどういう計算が行われているのでしょうか? どなたかお知恵をお貸しください。 よろしくお願いいたします。

  • 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関数について

    excel2010 SUMPRODUCT関数で、式の内容が理解できず教えてください。 sheet1に、A22からAM1047までデータがあります。B,E列を参照し、 sheet2のA、Cに設定された内容で抽出するという内容になっています。 具体例を下記に示します。 sheet1の構成 A1~AM21までは題目が記載されています。抽出したいデータ対象ではありません。 A列は見出しの内容でほとんど空欄です。 A427セルに本体、以降空欄が続きA490セルにヘッド、また空欄が続きA544セルに 見出しの内容といった感じです。 B22~B30セルにX001という識別コード(同じものが9) B30~B39セルにX002という識別コード(同じものが9) 以降、識別コードがB1047セルまで入ります。 E22~E30までは、a,b,c,d,e,f,g,h,iという検索内容が入ります。 以降同じ検索内容が続きます。 H22~H1047まで数字のデータが入ります。 上記以外の列は無関係なので説明省略。 下記のイメージです。 A1からAM20までにも何かしら内容が入っていますが、関係ないので説明省略。 A21の様に記載しているのはセルアドレス、その直下は入っている内容です。 A21  B21   E21     H21 名称  コード  検索     3月2日 A22  B22   E22     H22 準備  X001   a      0     X001   b      3     X001   c      2     X001   d      5     X001   e      2     X001   f      0     X001   g      3     X001   h      0     X001   i      0     X002   a      4     X002   b      7     X002   c      0     X002   d      0     X002   e      1     X002   f      3     X002   g      0     X002   h      0     X002   i      3  … A427  B427  E427    H427 本体  X701   a      0     X701   b      0     X701   c      1     X701   d      0     X701   e      2     X701   f      3     X701   g      0     X701   h      0     X701   i      1 … A490 ヘッド X792   a      4     X792   b      7     X792   c      2     X792   d      0     X792   e      1     X792   f      3     X792   g      0     X792   h      0     X792   i      3 sheet2は A1     C1  D1 コード   検索 X001    c   2 X002    c   0 X003    c   0 X004    c   0 X005    c   0 X006    c   0 X007    c   0 X008    c   0 X009    c   0 … X701    c   1 X792    c   2 の様にコードと検索条件でD列にsheet1からデータをひっぱってきたいのです。 下記はsheet2のD27セルに設定した内容です。 =IF(SUMPRODUCT((Sheet1!$B$22:$B$1047=$A27)*(Sheet1!$E$22:$E$1047=$C27)), INDEX(Sheet1!H$22:H$1047,SUMPRODUCT((Sheet1!$B$22:$B$1047=$A27)*(Sheet1!$E$22:$E$1047=$C27)*(ROW(sheet1!$A$1:$A$1026)))),"-") webや過去のokwebのsumproduct関数について調べた上で上記式にたどり着き、この内容で、sheet1の内容をひっぱってくるので良いのですが、 最後の*(ROW(sheet1!$A$1:$A$1026))の部分が理解できません。 疑問の内容は、下記2点 (1)単独でROW(sheet1!$A$1:$A$1026)を実施すると1になります。 しかしながら、 =IF(SUMPRODUCT((Sheet1!$B$22:$B$1047=$A27)*(Sheet1!$E$22:$E$1047=$C27)), INDEX(Sheet1!H$22:H$1047,SUMPRODUCT((Sheet1!$B$22:$B$1047=$A27)*(Sheet1!$E$22:$E$1047=$C27)*1)),"-") としてフィルハンドコピーすると、全ての行が27行目の値になってしまいます。 何故1ではだめなのでしょう? (2)データの範囲はA22からAM1047なので範囲を下記の様に同じにしてみました。 *(ROW(sheet1!$A$1:$A$1026))→*(ROW(sheet1!$A$22:$A$1047)) とすると全く正しく抽出されません。0になってしまいます。 *(ROW(sheet1!$A$1:$A$1026))が*(ROW(sheet1!$A$1:$A$1025)) の様に設定すると#N/Aとなり、抽出する設定条件で必要なのですが、 この*(ROW(sheet1!$A$1:$A$1026))の意味を教えていただきたく。

  • sumproductに関して

    =SUMPRODUCT((B1:C10=E1:F10)*1) という例示を見つけました。 内容は、B1:C10とE1:F10の範囲を1対1に対応させて、 同じ内容の数(セル)をカウントする。 というらしいです。 私がマニュアルを見たところではこのような書き方は出ていませんでした。 なぜこのような書き方が出来るのか分かりません。 何となくは分かるのですが。 なぜこのようなことが出来るのか、具体的に教えてください。

  • エクセルの関数(SUMPRODUCT?)

    ご存知の方がいらっしゃいましたら教えていただけたら幸いです。  A列 B列  C列  D列… 1 ID 部名 課名 都道府県… 2 1  A   a   北海道 3 2  A   c   大阪 4 3  A   b   東京 5 4  A   a   東京 6 5  A   a   福島 [シート名:入力]   A列  B列  C列 D列  E列… 1 地域   a   b  c   合計(←上記シート「入力」の課名) 2 北海道 2(Q2) 0  0   2(Q3)   東北 3 東京  1(Q1) 1  0   2 4 関西  0    0  1   1 [シート名:合計] (Q1)=SUMPRODUCT((入力!$C$2:$C$6="a")*(入力!$D$2:$D$6="東京")) で、地名を1つにしている場合は問題なく反映されています。 (Q2)★ここが一番聞きたいところです★ =SUMPRODUCT((入力!$C$2:$C$6="a")*(入力!$D$2:$D$6="北海道")*(入力!$D$2:$D$6="青森")*(入力!$D$2:$D$6="岩手")*(入力!$D$2:$D$6="宮城")*(入力!$D$2:$D$6="秋田")*(入力!$D$2:$D$6="山形")*(入力!$D$2:$D$6="福島")) で、エラーがでてしまいます。(イヤミではないんですが…)東京など大きなところでは(1)の処理でよいのですが、例えばここだと北海道や青森、秋田…とあまりその都道府県だけでは数の少ないところは「地域」として「北海道・東北」とまとめたく、上の式では、 「aの課で、且つ北海道か、青森か、岩手か、宮城か、秋田か、山形か、福島であればカウントする」としたいのです。 ちなみに(2)の式を入力すると、エラーは出ないのですが該当するものがあるにも関わらずゼロ(2ではなく0)と表示されてしまいます。 (Q3)よって、本当であればここの関数も 「aの部で、且つaの課で、且つ北海道か、青森か、岩手か、宮城か、秋田か、山形か、福島であればカウントする」としたいところ、(2)でつまずいてしまっているため、E2のセルの表示「2」はそのシートのB2-D2のSUM関数で合計を出しているという状況です。 (3)は以上のような対処で問題はないかと思いますが、(2)の部分はどうしても表示されません。 前任者のデータを引き継ぐ形となり、去年とは少し違う形式になるに伴い出てきた問題です。できれば去年のものをできるだけ引き継ぎたいと考えているのですが…何か良い方法があれば教えて頂ければ幸いです。

  • 《エクセル2000》SUMPRODUCT関数、この式のどこがいけないのか…

    こんにちは。 A列が1であり、B列とC列に共に数字が入っている(空白でない)ものをカウントしたいと思い、以下の関数を書きました。 =SUMPRODUCT((A1:A50=1)*(B1:B50<>"")*(C1:C50<>"")) ですがこの式ですと、「B列とC列が共に空白なもの」の個数が返って来てしまいます。 「<>」が怪しい気がするのですが、具体的に何がいけないのでしょうか? また、欲しい数字を出すようにするにはどうすればいいのでしょうか。 よろしくお願いします…

  • SUMPRODUCT複数条件カウントで0が返る

    winXP,office2002 エクセルにて、作業一覧シートから「担当者」と「〆切日」別で進捗一覧を作りたいとおもい、 SUMPRODUCT関数を使用したところ、全て0を返してしまいます。   A     B  1 担当者 山田 2 〆切日 作業数 3 1/7(月) =SUMPRODUCT(((別シート!$F$4:$F$109)="山田*")*((別シート!$G$4:$G$109)=$A3)) 4 1/8(火) =SUMPRODUCT(((別シート!$F$4:$F$109)="山田*")*((別シート!$G$4:$G$109)=$A4)) 5 日付の書式はm/d(aaa)です。 別シートF行は担当者名が入力されております。空欄もあります。 別ソートG行は日付m/d(aaa)が入力されております。空欄もあります。 担当者は連名の場合もあるため、"山田*"にしております。 なお試しに、countifでそれぞれ担当者と〆切日の単条件をカウントすると、正常に結果を返します。 いろいろと検索し、試してみましたが、どうしても0になってしまいます。 どこが間違っているのでしょうか? よろしくお願いします。