2つ以上の条件を満たす個数を数えたいのですがうまくいきません。
例えば

  A列    B列   C列
1 りんご  トマト  赤色
2 りんご  きゅうり 緑色
3 りんご  きゅうり 赤色
4 ぶどう  トマト  赤色
5 ぶどう  きゅうり 緑色
6 りんご  トマト  緑色
7 ぶどう  きゅうり 赤色

という表があった時に、「りんご」でもあり「トマト」でもある数は
1行目と6行目の2個である、という計算です。
また同様に、「ぶどう」でも「トマト」でも「赤色」でもある、等
条件が3つになる場合もあります。
COUNTIF関数で出るかと思いましたが、それぞれの列の個数は求められても
2列以上条件をつけるやり方がわかりません。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (14件中1~10件)

補足


No.7はNo.4で書いた条件指定のセル(1行目と2行目)をシート2に作って
抽出元データ(4行目から11行目)を1行目から8行目に変更しての事です。

Sheet1!A1:C8,1,A1:C2
↑の1というのは元データの1列目をカウントするという事です。
(2列目なら2・・適当に変更してください)

>元データの修正をすれば、すべての計算式にすぐ反映するようにしたいのですが、できるでしょうか?
「りんご」でもあり「トマト」や「ぶどう」でも「トマト」でも「赤色」という風に種類が複数の場合
なら一々条件を指定しなおすのは面倒なので
条件指定のセル(1行目と2行目)を複数作ってDCOUNTA関数でそれぞれの個数を求めてシート2
のセルから参照させるかシート2に作れば良いのでは?

この回答への補足

まとめてこちらへのお礼で申し訳ありません。
すごく参考になりました。ありがとうございました。

そうですね、データ入力している1枚目のシートに条件等多数作るのも
作業がしにくいですね。
sheet2に条件だけわけてしまえば、見た目もわかりやすくなるし。

DCOUNTA関数で、かなりの問題は解決したのですが、もうひとつよろしいでしょうか?

一覧から2つの条件から抽出したものから、ある条件のもの引いた数を求めたいのですが。
#「りんご」で「トマト」の条件にあったもので「赤色」以外のもの。
#ただし、「色」について入力してあるセルはまばらであり(空白セルがある)、
#「りんご」で「トマト」でも色が空白のものは含めない。

Sheet2に条件を入力するとして、
 A1    B1    C1
りんご  トマト
りんご  トマト   赤色   として、

=DCOUNTA(Sheet!A1:C8,1,A1:B2)-DCOUNTA(Sheet1!A1:C8,1,A1:C2)

にすると、色の列が空白のものも計算されてしまい、困ってしまいました。
また、同じ条件で空白の個数を求めることができるでしょうか?

よろしければ、アドバイスお願いします。

補足日時:2001/05/26 02:09
    • good
    • 0

また補足です。

(これで終わりです。。多分(^^ゞ)
条件に*と書きましたが空白にしても条件がないものとみなされるので同じです。
「り*」とすると「り」で始まる文字というようにも出来て便利なので・・・。
入れてもいれなくても同じとこなのに入れてしまいました^^;
    • good
    • 0
この回答へのお礼

こちらにまとめてのお礼で申し訳ありません。

空白セルにスペースを入れれば文字列と認識されるのは
知りませんでしたので、今回、たいへん助かりました。
年度締めの資料を作るのに四苦八苦していましたが、なんとかなりそうです。

本当にありがとうございました!

お礼日時:2001/05/26 22:46

補足(1回で書け!って声が聞こえますが・・(^^ゞ)


>また、同じ条件で空白の個数を求めることができるでしょうか?
1列だけでよいのであれば
C列のスペースをカウントするなら
A2に「*」B2に「*」C2に「スペース」・・・(「」は要りません)
*を条件にするとどんな文字でもOKって事になります。
↑でいうとC2にスペースがあればカウントする事になります。

調べるスペースが複数列にまたがるのであれば
=COUNTIF(Sheet1!A2:C8," ")

■スペースは半角、全角を統一してないと抽出できませんから注意
    • good
    • 0

=DCOUNTA(Sheet!A1:C8,1,A1:B2)-DCOUNTA(Sheet1!A1:C8,1,A1:C2)


だと条件の指定する行が2行になってしまいます。
りんご  トマト 又は りんご  トマト  赤色 である個数とかになるのでは?

りんご  トマト スペースの個数‐ りんご  トマト  赤色 の個数を
求めたいのであれば(1、3は項目名) 
1  A列    B列   C列
2 りんご  トマト  
3  A列    B列   C列
4 りんご  トマト  赤色

=DCOUNTA(Sheet1!A1:C8,1,A1:C2)-DCOUNTA(Sheet1!A1:C8,1,A3:C4)
としないといけないのでは?

項目名はシート1もシート2も同じにしないと抽出できないと思います。
空白の場合はスペースを入れれば条件として指定できるので
空白セルにスペースをいれるには↓参照(多数ある場合は楽です)
http://oshiete1.goo.ne.jp/kotaeru.php3?q=77592 (文字列をスペースに)

>また、同じ条件で空白の個数を求めることができるでしょうか?
スペースを条件として指定すればOKでは?
    • good
    • 0
この回答へのお礼

>=DCOUNTA(Sheet!A1:C8,1,A1:B2)-DCOUNTA(Sheet1!A1:C8,1,A1:C2)
>だと条件の指定する行が2行になってしまいます

そのとおりでした(汗)
項目名は、複数の条件がある場合、それぞれに設定しないと
いけないのですね。勉強になりました。

>スペースを条件として指定すればOKでは?
できました!
これでやりたかったことが出来るようになりました!!
本当にありがとうございました!

お礼日時:2001/05/26 22:38

#9の続きです。

自分で行うとうまくいきますが・・・・

この配列数式は条件2個の場合は、「りんご」と「トマト」だったら「1」を返す式です。当然数値ですのでSUMが機能します。
このままセルに打ちこんで、Enterして、ファンクションキーF2で編集モードにして、CtrlキーとShiftキーを押した状態でEnterキーを押してください。
数式を入力する窓に{=SUM(・・・・・・)}となるはずです。{}で囲まれた式です。
各単語の前後に空白はありませんよね。
    • good
    • 0
この回答へのお礼

すみません!
再度やってみたら、うまく計算されました!
どうやら、何か打ち間違っていた様です(汗)
ありがとうございました!

お礼日時:2001/05/26 22:29

私が聞かれたのではないのですが目に入ったので


>種類1が「りんご」で、種類2は「空白」で「赤色」のもの…というような。
空白はダメなのでスペースを入れれば?
    • good
    • 0
この回答へのお礼

ありがとうございます!
条件のセルにスペースを入れれば、空白のセルを認識してくれるのですね!?
#すみません、まだ確認できてません。
#april21さんへのお礼を書いて送信したところで、こちらが目に入ったので(汗)

さっそくやってみます。
ありがとうございました!

お礼日時:2001/05/26 02:33

条件2個は


=SUM(IF(A1:A7="りんご",IF(B1:B7="トマト",1,0),0))
条件3個は
=SUM(IF(A1:A7="ぶどう",IF(B1:B7="トマト",IF(C1:C7="赤色",1,0),0)))
で出ませんか?
配列数式です。登録するときは、Ctrl+Shift+Enterとします。私だけ勘違いしてる?
    • good
    • 0
この回答へのお礼

ありがとうございます。
やってみましたが、SUMは数値の合計数を求めるようなので、
セルには文字列のデータばかりなので、個数は拾ってこないみたいです…たぶん。
答えが「0」になってしまいました。

それとも、私のやり方がおかしいのでしょうか(汗)
ありがとうございました。

お礼日時:2001/05/26 01:41

>sheet2に、sheet1から抽出したデータの個数等を会議資料用


sheet2に個数を表示したいのであれば
sheet2の適当なセルに =DCOUNTA(Sheet1!A1:C8,1,A1:C2)
抽出される元データの範囲がSheet1!A1:C8
条件指定のセル範囲がA1:C2(sheet2)
    • good
    • 0

こんにちは


DCOUNTA関数を使ってみるとよいのではないでしょうか?
フィールド名を1行目につける必要がありますが・・・。
たとえば

   A    B    C    D    E
  種類1  種類2   色

1 りんご  トマト  赤色   種類1  種類2   
2 りんご  きゅうり 緑色   りんご  トマト
3 りんご  きゅうり 赤色
4 ぶどう  トマト  赤色
5 ぶどう  きゅうり 緑色
6 りんご  トマト  緑色
7 ぶどう  きゅうり 赤色

としておきます。
DCOUTA(A1:C7,C1,D1:E2)と式を立てます。式の意味は、“A1からC7の表でD1からE2の条件を満たす色フィールドの個数を数えなさい”という意味です。D1からE2の部分のように条件を指定してあげるのがポイントのようです。
説明が下手ですみません。
もしできなかったらごめんなさい。
    • good
    • 0
この回答へのお礼

ありがとうございます!
出来ました!
式の意味も、よくわかりました。
と、感動したのですが、実は参照するデータの中には、空白のセルを含む列もあるのです。
そして、複数の条件のうち、空白であることが条件のひとつであるものもあるのですが…
条件が空白では無理…ですよね。
種類1が「りんご」で、種類2は「空白」で「赤色」のもの…というような。

もしよろしければ、アドバイスお願いします。

ありがとうございました。

お礼日時:2001/05/26 01:56

No.1のsydneyhです。

補足に対してお応えします。

やはりこの場合、No.2の方の言う通りAccessを使うと簡単に楽に作成できるでしょう。Accessは何もそんなに難しくありません。この計算の場合Excelとあまり違いはありません。

やり方を細かく説明するととんでもなく文字数を使いそうなので簡単に言います。○Excelから該当の表があるファイルをAccessへインポートし、一つの「テーブル」を作ります。
○それを会議用に使いやすくするため、更に「クエリ」として抽出すると、テーブルとクエリはリンクされていますので、テーブルが常に更新しても、それがクエリ上に反映されます。
※インポートする時にExcelとリンクさせるというのを選択すると、通常はExcelで入力し、その会議用資料をつくる時のみAccessで加工するというやり方もできます。

Excelの方が使い慣れていて利用したくなる気持ちも分かりますが、業務を早く楽にするためには、少しの努力が必要だと思います。何よりこれからいくらでも応用がきくようになるでしょう。vie511さんのスキルもアップしますよ。

至急やらなくてはいけない作業でもないようですし、上記に述べたやり方はどのマニュアル本でも詳しく載っていますので、確認してぜひ試してみて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。
多量のデータ処理にはAccessの方が向いている、というのはわかっているのですが
ついつい手が出ずじまいになってました。
今回の作業も、この機会にAccessへの移行も視野に入れて考えてみます。
クエリのデザイン(という言い方でいいのかな)というか、
データとテーブル同士のリンク等の仕方で挫折していたのですが、
もう1度勉強してみます。

アドバイス、本当にありがとうございました。

お礼日時:2001/05/26 01:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q【EXCEL】条件付き書式、A列、C列、D列、E列が同じ値の時にB列の背景色を変えたい

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青になると思うのですが実際の結果は画像の通りです。

先の話の通りA列、C列、D列、E列の値が同じ時だけ
B列のセルの背景を青にしたい場合はどうい数式になるのでしょうか?

すいませんが、詳しい方、数式(関数?)で説明できる方よろしくお願い致します。

追記
可能でしたらA列、C列、D列、E列が空白の時はB列の背景色をなしにしたいと思っております。
→A列、C列、D列、E列に値があって、かつ同じ値の場合のみB列の背景を青にしたいです。

お世話になります。

エクセルの条件付き書式の数式の使い方について教えて下さい。
A列、C列、D列、E列の値が同じ時にB列のセルの背景を青に
塗りつぶしたいと思っています。

なので、「数式を使用して、書式設定するセルを決定」、
「次の数式を満たす場合に値を書式設定」で、数式を
「=A1=C1=D1=E1」と入力し、書式、塗りつぶし、青、
を選択して、条件付き書式を設定しました。
すると、、、画像のような結果になります。

私の感覚だと画像でセルの値が「11」~「15」の時だけ
B列が青にな...続きを読む

Aベストアンサー

AND関数を使えば判定ができるのでは?
 =AND(A2<>"",A2=C2,C2=D2,D2=E2)

A列には常に判定する数値が入っているなら「A2<>""」は不要です。

参考サイト
http://www.relief.jp/itnote/archives/003940.php

Q条件付き書式 日曜ならAからD列まで下線を赤色

条件付き書式 日曜ならAからD列まで下線を赤色にしたいです。
画像のようにA列の値が日曜なら、AからD列まで下線を赤色にするにはどうすればいいでしょうか?

Aベストアンサー

No.1です
画像添付忘れで追加回答

QExcel 2つ以上の異なる列で異なる条件が一致する個数

たとえばA列のバックでC列の未着が一致する行数をカウントする方法がわかりません。
Excelに詳しい方誰か教えていただけないでしょうか?
=SUMPRODUCT((A1:A10="バック")*(FIND("未着",C1:C10)))
この関数を指定してみたのですが、#VALUEでエラーを返してきます。

サンプルデータ
バック1001到着
箱1002タグ未着
箱1003タグ未着
キャリア1004現在調査中
バック1005転送中
箱1006未着不明
バック1007到着
箱1008到着
キャリア1009到着
バック1010到着

Aベストアンサー

これでどうですか?

<バック:未着>
=SUMPRODUCT(($A$1:$A$65536=$E2)*ISNUMBER(FIND($F$1,$C$1:$C$65536)))
<箱:未着>
=SUMPRODUCT(($A$1:$A$65536=$E3)*ISNUMBER(FIND($F$1,$C$1:$C$65536)))
<キャリア:未着>
=SUMPRODUCT(($A$1:$A$65536=$E4)*ISNUMBER(FIND($F$1,$C$1:$C$65536)))

<バック:到着>
=SUMPRODUCT(($A$1:$A$65536=$E2)*ISNUMBER(FIND($G$1,$C$1:$C$65536)))
<箱:到着>
=SUMPRODUCT(($A$1:$A$65536=$E3)*ISNUMBER(FIND($G$1,$C$1:$C$65536)))
<キャリア:到着>
=SUMPRODUCT(($A$1:$A$65536=$E4)*ISNUMBER(FIND($G$1,$C$1:$C$65536)))

これでどうですか?

<バック:未着>
=SUMPRODUCT(($A$1:$A$65536=$E2)*ISNUMBER(FIND($F$1,$C$1:$C$65536)))
<箱:未着>
=SUMPRODUCT(($A$1:$A$65536=$E3)*ISNUMBER(FIND($F$1,$C$1:$C$65536)))
<キャリア:未着>
=SUMPRODUCT(($A$1:$A$65536=$E4)*ISNUMBER(FIND($F$1,$C$1:$C$65536)))

<バック:到着>
=SUMPRODUCT(($A$1:$A$65536=$E2)*ISNUMBER(FIND($G$1,$C$1:$C$65536)))
<箱:到着>
=SUMPRODUCT(($A$1:$A$65536=$E3)*ISNUMBER(FIND($G$1,$C$1:$C$65536)))
<キャリア:到着>
=SUM...続きを読む

QEXCELで複数列にまたがる複数条件のセルの個数を求めるには?

こんにちは。よろしくお願いします。
A列に1or2が入力されているセル、且つB列に3or4が入力されている
セルの個数を求めるにはどういった数式を作ればいいのでしょうか?
COUNTIFだとだめなんですよね。

Aベストアンサー

こんにちは

#2 MSZ006さんと同様の考え方で

=SUM(((A1:A10=1)+(A1:A10=2))*((B1:B10=3)+(B1:B10=4)))

[Ctrl]+[Shift]を押したまま[Enter]で数式入力確定

もしくは
=SUMPRODUCT(((A1:A10=1)+(A1:A10=2))*((B1:B10=3)+(B1:B10=4)))
こちらは通常の数式入力です。

Qエクセルでの列と列の比較、重複データ個数抽出

すいません。どなたか教えてください。
今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。
お知恵をお貸しください。

  A列 B列
1 あ   あ
2 い   う
3 う    い
4 え   
5 お   か

A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。
そこで、一つのセルで3個とい値を返したいです。


条件として、
・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。
・できたらマクロも使用しないでやりたいです。
・数字ではなく、文字列の比較で、空白行もあります。


やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか?
どなたかよろしくお願いいたします。

Aベストアンサー

たとえば
=SUMPRODUCT(COUNTIF(A1:A5,B1:B5))


このカテゴリの人気Q&Aランキング

おすすめ情報