• ベストアンサー

EXCELでOR条件で合致するデータのカウント

たとえば、A列とB列どちらかに日付が入っているレコードをカウントしたいのですが どうもうまくいきません。カウント関数ではAND条件でカウントされてしまいます。    A    B 1  3/3 2       3/4 3  4  3/1   3/10 上記の場合、3件としたいのですが ・・・ よろしくお願い致します

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

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

>(INDEX(1/(A1:A100&B1:B100 この数式のイメージがわからないので教えてもらってもいですか? A列とB列を連結した文字列の配列が空白以外ならその結果(TRUEまたはFALSE)を分母にして1で割るとTRUEは「1」、FALSEは#DIV/0Eエラーになります。 この配列をCOUNT関数で数字の数をカウントするとエラーは無視して数字だけの数をカウントしますので、求める結果が得られるわけです。 ちなみに、INDEX(配列,)の部分は配列を範囲として認識させるための数式ですので、以下のようにINDEX関数を使用しない場合は、そのままCtrlキーとShiftキーを押してEnterする操作で配列数式にする必要があります。 =COUNT(1/(A1:A100&B1:B100<>""))

satoshi5050
質問者

お礼

きめ細かいご説明、ありがとうございます。 本当に助かりました。

その他の回答 (4)

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

 Excelはそのバージョンによって使う事の出来る関数が異なる場合がありますので、Excelの御質問をされる際には、御使いになられるExcelのバージョンを御伝え頂く様御願い致します。  もし、御使いになられるExcelのバージョンがExcel2007かそれ以降のものである場合には、COUNTIF関数とCOUNTIFS関数を併用して、次の様な方法でカウントする事が出来ます。 =COUNTIF(A:B,">=1")-COUNTIFS(A:A,">=1",B:B,">=1")  尚、何故、COUNTIF(A:B,">=1")の部分でCOUNT関数ではなくCOUNTIF関数を使っているのかと申しますと、負の数や0といった「日付けには変換出来ない数値」を排除するためです。(尤も、この方法でも只の正の数値と、日付けを区別する事は出来ませんが)

satoshi5050
質問者

お礼

大変失礼しました。バージョンが分かった方が 回答し易いですよね。今度からそうさせて頂き ます。(ちなみに今回はEXCEL2010)です。

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.3

C列を作り、=count(A1:B1) とし、全行にコピー。 その最下部に =countif(C1:C**,"<>0") でどうでしょう?

satoshi5050
質問者

お礼

ありがとうございます。 ワンクッションおくのも手ですね。 こちらも試してみます。

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

>上記の場合、3件としたいのですが ・・・ SUMPRODUCT関数でA列とB列を加算した値が0より大きい組み合わせの個数を加算します。 日付の場合はマイナス値が無いのでマイナスの値を考慮する必要がありません。 =SUMPRODUCT((A:A+B:B>0)*1)

satoshi5050
質問者

お礼

このようなやり方もあるんですね。 どうもありがとうございます。試してみます。

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

A列とB列のいずれかにデータが入力されている場合にカウントしたいなら以下のような数式で求めることができます。 =COUNT(INDEX(1/(A1:A100&B1:B100<>""),))

satoshi5050
質問者

お礼

どうもありがとうございます。 早速試してみます。

satoshi5050
質問者

補足

(INDEX(1/(A1:A100&B1:B100 この数式のイメージがわからないので教えてもらってもいですか?

関連するQ&A

専門家に質問してみよう