• ベストアンサー

excel2003で複数条件

A列にA~Gのアルファベットかブランク、B列に数字(0~5)かブランクが入っています。 A列にアルファベット、B列に0が入っている行を抽出し、 A列とB列がAと0、BとO、CとO・・・の行がそれぞれABCごとに何個あるかカウントしたいのですが、 どのような論理式を作ればよいでしょうか? なおexcel2003を使用しておりますのでcountifとsumproductは使うことはできますが、countifsを使うことはできません。 よろしくお願い致します。。

noname#200651
noname#200651

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.3

>なおexcel2003を使用しておりますのでcountifとsumproductは使うことはできますが、countifsを使うことはできません。 SUMPRODUCT関数が手頃と思います。 =SUMPRODUCT(($A$1:$A$100=”A")*1,($B$1:$B$100=0)*1) 簡略化    ↓ =SUMPRODUCT(($A$1:$A$100=”A")*($B$1:$B$100=0)) A列の比較文字(”A")を可変にしたいときは CHAR(ROW(A65)) のようにすれば下へコピーしたときに"B"~"G"に変化します。 =SUMPRODUCT(($A$1:$A$100=CHAR(65))*($B$1:$B$100=0)) 貼付画像はExcel 2013で検証したものですがIF関数とCOUNT関数を組み合わせた処理です。 COUNT関数の代わりにSUM関数でも計数できます。 何れもExcel 2003で計数可能な関数のみで構成されています。 但し、IF関数の戻り値を配列で返す必要があるので式の確定時にCtrl+Shift+Enterの操作が必要です。 =COUNT(IF(($A$1:$A$100=E$1)*($B$1:$B$100=$D2),1,""))

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 A列にA~Gのアルファベットかブランク、B列に数字(0~5)かブランクが入っている行が、数百行(行番号ではなく、範囲内に含まれている行数)程度までである場合には、回答No.1様の方法でカウントされるのがベストだと思います。  一方、もし、数千行以上にもなるデータを対象にする場合には、SUMPRODUCT関数では処理が重くなりますので、作業列を使用する方法が使われます。  例えば、G列を作業列として使用するものとしますと、まず、G1セルに次の様な関数を入力して下さい。 =IF(OR($A1="",$B1=""),"",$A1&"■"&$B1)  次に、G1セルをコピーして、G2以下に貼り付けて下さい。  これで、例えばA列に「A」、B列に「0」が入力されている行の場合は、G列には「A■0」と表示されます。  そして、例えばA列が「A」で、B列が「0」となっている行をカウントする場合には、次の様な関数とします。 =COUNTIF($G:$G,"A■0")  尚、G列において「■」を間に挟んでいるのは、どこからどこまでがA列のデータで、どこからどこまでがB列のデータであるのかという事を区別するための区切りで、通常ではデータとして使用される事のない文字列でさえあれば、何も「■」に限らず、「□」でも「◎」でも、「★」であっても何でも構いません。  A~Gのアルファベットと0~5の数字との組み合わせの場合は、間に区切りが無くとも区別する事は容易なため、区切りを挟める必要は無いのですが、これがもし、例えばコード番号と型式名の組み合わせの場合の様に、A列のデータとB列のデータの双方に数字やアルファベットが現れる可能性がある場合には、区切りを入れて区別をつける必要があるため、念の為に区切りを入れた場合の方法を回答させて頂きました。

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

ゼロであって空白じゃない、と丁寧に計算するだけです。 D1以下にABCDEFGを羅列 E1: =SUMPRODUCT((A$1:A$999=D1)*(B$1:B$999=0)*(B$1:B$999<>"")) 以下コピー。

関連するQ&A

  • Excel 関数でcountifの複数条件

    Excelで条件にあった個数をカウントする関数はcountifですが、 複数の条件にあった個数をカウントする場合、countifの式はどうすればよいのでしょうか。 例えば A列の1行から20行で"○"が入っている個数のカウントは =countif(a1:a20,"○")ですが A列の1行から20行で"○"が入っていて、なおかつ B列の1行から20行に"1"が入っている個数のカウントを知りたいです。 =countif(a1:a20,"○")and(b1:b20,"1")ではないですよね。 よろしくご教授願います。

  • 【Excel】複数条件でのカウント

    お世話になります。  列 A    B 行  項目X    項目Y 1 あ     aaa 2 あ     bbb 3 い     aaa 4 い     bbb 項目X = "あ" & 項目Y = "aaa" のカウントをしたいのですがどのような関数になりますか? それぞれ単独の場合は、 (1)countif(A1:A4,"あ") → 2 (2)countif(B1:B4,"aaa") → 2 になるのはわかるのですが、ひとつのセルにこの二つの条件をand条件でカウントするやり方がわかりません。 よろしくお願いします。

  • excel2003でcountifs関数と同等の

    excel2003でcountifs関数と同等の効果を出すにはどうすればいいのでしょうか? 具体的には、A1からB100に1から5の数字がランダムに入っている場合、 AとBの列がどちらも3である行の個数をカウントしたいです。 よろしくお願いいたします。。

  • Excelのカウントについて(複数条件)

    Excelのカウントについて質問です。      A列  1行目 1-2-3  2行目 2-3-1 3行目 4-5-1 4行目 3-2-1 5行目 1-3-2 6行目 ( ) 上記の表があり、A列6行目にA1~A5のカウントを表示したいと思います。 その際、1-2-3、2-3-1、3-1-2など、同じ数字でできているものであれば、順番が違っていても同じものとみなしてカウントしたいのです。 ※1-2-3は文字列です。 COUNTIFを使って下記のようにすればカウントできなくはないのですが、もっと効率よく短縮して書けないかと思っています。 =COUNTIF(A1:A5,"1-2-3")+COUNTIF(A1:A5,"1-3-2")+COUNTIF(A1:A5,"2-1-3")+COUNTIF(A1:A5,"2-3-1")+COUNTIF(A1:A5,"3-1-2")+COUNTIF(A1:A5,"3-2-1") 簡潔にする方法がありましたらおしえてください。

  • Excel複数条件のカウント

    あと一歩のところで困っています(>_<) A列に日付、B列に年齢があります。 2012/3/31時点で、35歳または40歳以上の人を抽出したいです。 ↓の式で40歳以上を抽出するところまではできたのですが =SUMPRODUCT((A1:A10=2012/3/31)*(B1:B10>=40)) 35歳という条件をどうやって追加すればいいか分かりません。 条件の追加方法について教えていただけないでしょうか? よろしくお願いいたします。

  • Excel2010 関数 複数条件で人数カウント

    Excel2010で、複数条件を指定して人数をカウントする関数を作成したいのですが うまくできません。やりたい事は、 Sheet1に、1行につき1名の名前(B列)と、○印(C列)が入った表があります。 Sheet2に、2行につき1名の同じ名前(B列)と、○印(C列)が入った表があります。 Sheet2のC列に○印が入った人が何人か知りたいのですが、この時の条件として Sheet1で○が入っている人で、なおかつSheet2でも○が入っている人、をカウントしたいのです。 添付の図の場合、答えはAさん、Cさん、Jさんの3人となります。 下のような式を作ってみたのですが、Sheet2が2行になっているためダメでした。 =SUMPRODUCT((Sheet1!C2:C11="○")*(Sheet2!C2:C21="○")) 関数でカウントできますでしょうか? お分かりの方いらっしゃいましたらご教示ください! よろしくお願いいたします。

  • 複数条件でのカウント

    データの個数のカウントで行き詰りましたので質問させていただきました。 複数条件で検索するのですが、その条件の中に AND と OR があります。 現状ではCOUNTIFSを足していって算出していますが、場合により条件が多くて とんでもなく長い式になってしまっています。 なんとか簡潔に短い式にまとめられないかと思いまして試行錯誤したり調べたり してみたのですが答えが出ませんでしたので質問に至りました。 現状では以下の様になっております。 A列・・・2ケタの数字 B列・・・数字・文字列の混合 データは約1000行あります。  このデータから、A列の 10 or 15 のデータで、 かつB列の 4 or 1_100 のデータの個数を求める式です。 =COUNTIFS(A1:A1000,C1,B1:B1000,D1)+COUNTIFS(A1:A1000,C1,B1:B1000,D2) +COUNTIFS(A1:A1000,C2,B1:B1000,D1+COUNTIFS(A1:A1000,C2,B1:B1000,D2) 条件を変えていろいろカウントしたいので、 C1~C2にA列の検索条件を入力するセルとし、 D1~D2にB列の検索条件を入力するセルとしております。 上記の式は条件がそれぞれ2個ずつとなっておりますが、 片方だけで6個までいく事もあり、その場合式がかなり長くなります。 これをどうにかして簡潔に短くまとめたいと思っております。 ご存知の方がおられましたらご教授下さい。 よろしくお願いいたします。

  • エクセルの複合計算

    いつもお世話になっております。 今回質問させていただきたいのはExcel2003の関数についてなのですが、Excel2007では追加されているCOUNTIFSの集計機能です。 例として -|A|B| 1|a|1| 2|a|2| 3|a|1| 4|b|2| 5|b|1| という表があったときに「A列にaがあり、かつB列に1がある行」をカウントしてほしいのです。 一度a-1やb-2など集計してからとも思ったのですが、論理式だけで何通りもの式が必要になってしまい無理がありました。 Excel2003でExcel2007のCOUNTIFSと同じ集計を行える方法をご教授願えないでしょうか? よろしくお願いいたします。

  • エクセル 複数条件に合うデータを数えたい

    エクセル 複数条件に合うデータを数えたい エクセルでA列に何らかの値が入っていて(=空欄でない)、かつB列の値が“○”の数を数えたいです。 =SUMPRODUCT(($A:$A="*")*($B:$B="○"))と入れましたがSUMPRODUCTはワイルドカードが使えないようで結果は「0」となってしまいダメでした。 エクセル2007を使ってるので =COUNTIFS($A:$A,"*",$B:$B,"○")としたらできたのですが2002を使っている人と共有したいので2002でも使える関数を使いたいです。 どうしたらいいのでしょうか?

  • Excel2007 複数条件での検索

    Excel2007で複数条件のデータの抽出について教えて下さい。 現在、シートAにデータが入力され、シートBにデータの抽出を行いたいと思います。 シートAの内容は以下の通りです(アルファベットと数字はセルの場所です): 1行目: 項目欄 2行目以下: データ詳細 1行目 A1 「日付」 B1「名前」 C1「出社状況」 2行目以下 A2 12/01  B2 山田  C2 出社 A3 12/01  B3 佐藤  C3 早退 A4 12/01  B4 木村  C4 出社 A5 12/02  B5 木村  C5 早退 A6 12/02  B6 山田  C6 遅刻 A7 12/02  B7 佐藤  C7 遅刻 ・・・・・ A列の日付は昇順ですが、B列の人名はランダムに入力されています。 また、日付によっては途中入退社する人もいるので、12/01に名前がなくても、 12/10から名前が入力されている場合(あるいはその逆)もありえます。 シートBは以下の通りです: 1行目 名前 A列:日付 B1 木村 C1 山田 D1 佐藤 ・・・ A2 12/01 A3 12/02 このシートBの B2に シートAから 「木村の12/01の出社状況」(つまりC4)に値するデータを 自動的に抽出するような関数を入力したいのですが、どのようにすればよいのでしょうか? (このB2セルの式をB2:D3に入力していきたいので、絶対値を指定することになると思いますが・・・) IndexやらMatchやらLookupやらを色々試してみたのですが、どうも上手くいきません。 どなたかアドバイスをお願いいたします。

専門家に質問してみよう