• ベストアンサー

SUMIFの使い方で困っています。

SUMIFの使い方で困っています。 下記の数式でデータ件数をカウントしたいと思い、使ってみたのですが、 そのデータをカウントする行には"1"の数字以外に"×"が含まれています。 この場合、"×"をカウント外にしたいのですが、どのようにすればよいか 悩んでいます。お力をいただけるとうれしいです。 {=SUM(IF(Sheet1!A2:A1000="●●",IF(Sheet1!E1:E1000>=1,1,0)))}

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

=SUMPRODUCT((Sheet1!A2:A1000="●●")*(Sheet1!E1:E1000>=1)*(Sheet1!E1:E1000<>"×")) を普通にEnterで入力するなど。 ×に限らず文字を全て除外したいなら,E列の十分大きな最大値よりも大きい数値より小さい,で判定してもいいです。 =SUMPRODUCT((Sheet1!A2:A1000="●●")*(Sheet1!E1:E1000>=1)*(Sheet1!E1:E1000<9999)) など。 SUMIFじゃなくSUM(IFがいいなら, =SUM(IF((上述)*(上述)*(上述),1,0)) をCtrl+Shift+Enterしても,もちろん構いません。

chimi555
質問者

お礼

早速の回答ありがとうございました。 いろいろな参考のものを見つけて自分で解決しようと試みていたのですが 一度に解決してしまいました。 甘えていてはいけないので自分で勉強しなければならないのですが、 どうしても早めに解決しなければならなかったので助かりました。 ありがとうございました。

その他の回答 (3)

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

No.1・3です! 何度もごめんなさい。 質問内容を勘違いしていました。 No.2さんが的確な回答をされているとおもいます。 当方の投稿は無視してください。 何度も失礼しました。m(__)m

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

No.1です! たびたびごめんなさい。 前回の数式を少し訂正してください。 不等号が抜けていると思います。 =SUMPRODUCT((Sheet1!A2:A1000="●●")*(Sheet1!E2:E1000>=1)) ではないでしょうか? どうも何度も失礼しました。m(__)m

chimi555
質問者

お礼

丁寧に回答いただきましてありがとうございました。 すぐに回答がいただけてとてもうれしかったです。 いろいろな考え方があるのですね。 まだまだ勉強が足りないと思いました。 このたびはありがとうございました。

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

こんばんは! 外していたらごめんなさい。 こんな感じですかね? =SUMPRODUCT((Sheet1!A2:A1000="●●")*(Sheet1!E2:E1000=1)) (とりあえず配列数式ではありません) 以上、参考になれば良いのですが 的外れなら読み流してくださいね。m(__)m

関連するQ&A

  • SUMIFの代用

    お世話になります。 ファイル2からファイル1へリンクして計算をしてますが、同時に開いてないと更新されない(VALUE)となるため調べましたら、SUMIF・COUNTIF関数はこのような現象が発生するということでした。 ファイル1はSUMIFを多用しており納得はしましたが、SUM+IFに置き換えれば良いとのことで試しましたが、計算結果がうまくでません。 ファイル1:抜粋    A   B   C 1  12/1  AAA  100 2  12/2  AAA  200 3  12/3  AAA  300 4  12/4  AAA  400 5  12/5  BBB  500 というデータがあります。A:日付 B:コード C:数量 ファイル2表にてAAAの合計数量を出したいのですが、 SUMIF([ファイル2.XLS]sheet1!$B:$B、(ファイル1のコード入力セル)、[ファイル2.XLS]sheet1!$C:$C) にてできるのですが、ファイルを同時に開かずに行いたいのです。 SUM(IF([ファイル2.XLS]sheet1!$B:$B=(ファイル1のコード入力セル)、[ファイル2.XLS]sheet1!$C:$C、0)) に置きかえてもうまくでません。 どなたかアドバイスをお願いいたします。

  • EXCEL SUMIF 関数の計算結果が倍数になってしまう

    EXCEL SUMIF 関数の計算結果が倍数になってしまう EXCELのC列に下記数式を入れているのですが、計算結果がなぜか2倍された値が入ってしまいます。 色々と検索してみたのですが、よく分からず、皆様のお力をお貸し頂きたく。 =IF(A2=A3,"",SUMIF(A:A,A2,B:B))

  • SUMIF関数で{ }が出てきて困っています

    sumif関数で =SUM(IF((条件(1)の範囲="条件(1)")*(条件(2)の範囲="条件(2)"),求める答えの範囲)) のような式をつくり作業をしていました。 最近になってこの式の最初と最後に{=SUM(IF((条件(1)の範囲="条件(1)")*(条件(2)の範囲="条件(2)"),求める答えの範囲))}の様に{ }がついて、数式欄をクリックするとこの{ }のみ消えて数式の答えも出てきません。 その後新たに数式をいれても答えが出てきません。 どなたか改善方法ご存じの方いましたら教えて下さい。

  • エクセルのsumifの使い方がわからないんです

     sumifの使い方がわかりません。どうしても、たとえば3423234%などという数字になってしまいます。正しいやり方を教えていただけませんか?(今はしょうがないので、できる範囲をほとんど手作業でsumで10個くらいコピーして、たしていっています。........2時間くらいかかります.......助けてください)  こんな感じのものです。   A B  3952 | 1 | 9982 | 1 | 6536 | NO| 7248 | 1 |     でBが1の ものだけ Aの数字を合計したいのです。   いまやっているのは=SUMIF(B1:B4,1,A1:A4)です。 どうすればよいのでしょうか?教えていただけませんか?

  • エクセルでの行数カウント

    エクセルで A列 B列 1行 ●1 C ⇒カウント 2行 X1 D  3行 ●2 E 4行 X2 F 5行 ●3 C ⇒カウント 6行 ●4 D 7行 X3 E A列で「●」を含み、なおかつB列で「C」である行の数(例でいうと「2」)を求める 数式を教えてください。 ちなみに A列 B列 1行 ● C ⇒カウント 2行 X1 D  3行 ● E 4行 X2 F 5行 ● C ⇒カウント 6行 ● D 7行 X3 E であればA列が全く「●」に等しいものでカウントする場合は、下記の関数で計算できます。 {=SUM(IF(B1:B7="C",IF(A1:A7="●",1,0)))} COUNTIF関数では、"●*"のように「任意の文字」を指定することが可能ですが、IF関数の 中ではできないようです。

  • SUMIF関数

    1月1日 100 日付をA列1-10行 数をB列1-10行 1月2日 200 (略) 1月10日 1000 これで 1月4日~1月7日までの 合計SUMIFで求めるとき、 =SUMIF(A1:A10,">=1/4",B1:B10)-SUMIF(A1:A10,">=1/7",B1:B10) と 数式立てました。が答えは 2月8日 と返ってきました。 そこで 質問ですが SUMIF関数は 複数の数式には対応しないのでしょうか?(1月4日以降の合計から 1月7日以降の合計を引いて 1月4日~1月7日 を求める方法) 教えて 下さい。お願い いたします。 エクセルは2002です。 なお、自分 先日COUNTIF で質問して、そのとき 教えてもらった 数式が そのまま流用できそうな 感じがして SUMIF関数に 置き換えて みたら数値が欲しいのに、日付が 返ってきた しだいです。 http://www.okweb.ne.jp/kotaeru.php3?q=339430 お願いいたします。 最近、関数が 難しいですが がぜん 面白くなってきて、参考書を読んで 実践して つまずくと ここに 頼って きてしまいます。

  • VBA 他シートを参照しているセルのコピー

    お世話になります。 以下のシートがあります。 [sheet a]    A     B        C      D     E 1 2004 2005 2006 2007 2008 2 =b!A2 =b!C2 =b!E2 =b!G2 =b!I2 3 10 15 16 4 11 4 12 30 20 9 2 5 =SUM(A3:A4) =SUM(B3:B4) =SUM(C3:C4) =SUM(D3:D4) =SUM(E3:E4) [sheet b] A B C D E  F G H I J 2004 2005 2006 2007 2008 1 あ1 い1 う1 え1 お1 か1 き1 く1 け1 こ1 2 あ2 い2 う2 え2 お2 か2 き2 く2 け2 こ2 ・・・・・・・・・ [sheet a]F列以降に入れるデータは、VBA(マクロ)を使って、別のブックから取り出しています。 (例) F1…=E1+1(E1の数式をコピー) F3,F4…任意の値(別のブックからコピー) F5…=SUM(F3:F4)(E5の数式をコピー) 1行目,5行目の場合は左のセルをコピーして数式を貼り付けると、列が自動的に列が変わりますが、2行目の場合は元のシートを1行おきに参照しているので、単純にコピーしただけでは正しい数式が入りません。 2行目の参照をVBAで作るには、どのようにしたらいいでしょうか。 よろしくお願いします。

  • 多量のSUMIF式を軽くしたい

    お世話になっております。 今回、7000行~10000行程度のデータを集計するEXCELシートを作成しています。 元データは 取引先CD 社名 分類CD 分類名 売上 粗利 在庫 001    A社 001   A   1200 120  1440 001    A社 002   B   1000 100  1200 001    A社 003   C   2000 200  2400 001    A社 004   D    300  30   360 001    A社 005   E   1500 150  1800 001    A社 006   F    200  20   240 002    B社 002   B   5000 500  6000 002    B社 004   D    10  1   12 003    C社 006   F   2200 220  2640 005    E社 005   E    100  10   120 のように会社別・分類別の売上・利益・在庫データです。 通常であれば、集計表を作るにはSUMIF関数で十分なのですが、 実際のデータは数千行あり、また項目ももっと多岐にわたるため、 再計算に時間がかかってしまいます。 (Celeron1.2Ghz、メモリ512MB位のノートPCで再計算に2~3分要します) SUMIF以外の方法で処理を軽くすることはできないでしょうか。 VBAを使って軽くなるのであればVBAでもかまいません。 ちなみに元データをいじることはできません。 (定型でシステムから出力されるデータであるため) 申し訳ありませんが、ご教示いただければ助かります。

  • SUMIF関数の集計が上手くいきません。

    「集計」シートのA列に得意先コード・O列に集計欄 「貼付」シートのE列に得意先コード・J列に集計欄があります。 なお、「貼付」シートのE列は重複する場合もあります。 「集計」シートのA列の値を、「貼付」シートのE列から探して、その行のJ列の数値の合計を 「集計」シートのO列に集計したいと思っています。 「集計」シートのA406が「B」で「貼付」シートのE200とE300が「B」で、「貼付」シートのJ200が「150」 ・J300が「250」であれば「集計」シートのO406に「500」(150+250)を表示させたいと思っています。 なお、「貼付」シートのE列には他に「B」の値がないものとします。 そこで、O列に次の関数を入れました。 「=SUMIF(貼付!E:E,A403,貼付!J:J)」 すると、(O4:O405)の範囲では、きちんと「貼付」シートの、各得意先コード別の合計が表示されるの ですが、O406の値が「0」と表示されます。 数式は合っていると思うのですが、何が誤っているのか、わかるかたはいらっしゃいますか? 406行目がA列に得意先コードが入っている最終行であることも関係ありますか? あるいは、どのように集計したら良いのか、教えていただけると助かります。

  • 1行おきのセルの合計数式結果が0になってしまいます。エクセル

    1行おきのセルの合計数式結果が0になってしまいます。エクセル データ範囲がE2からU117あり、E列のE2から1行おきに数値E116までを合計するため E118に次の数式を入力しました。 =SUM(IF(MOD(ROW(E2:E117),2)=MOD(ROW(E2),2),E2:E117)) Ctrl+Shift+Enterすると結果が0になってしまいます。 指定の行には数値以外に「-(ハイフン)」や、範囲行に数式が入っていたりするからでしょうか?   E 2   50  ←足したい 3  数式 4   -  ←足したい 5  数式 ・     ・ 117  150  ←足したい 118  数式 119  =SUM(IF(MOD(ROW(E2:E117),2)=MOD(ROW(E2),2),E2:E117))

専門家に質問してみよう