- ベストアンサー
EXCELでOR条件で合致するデータのカウント
たとえば、A列とB列どちらかに日付が入っているレコードをカウントしたいのですが どうもうまくいきません。カウント関数ではAND条件でカウントされてしまいます。 A B 1 3/3 2 3/4 3 4 3/1 3/10 上記の場合、3件としたいのですが ・・・ よろしくお願い致します
- みんなの回答 (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<>""))
その他の回答 (4)
- kagakusuki
- ベストアンサー率51% (2610/5101)
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といった「日付けには変換出来ない数値」を排除するためです。(尤も、この方法でも只の正の数値と、日付けを区別する事は出来ませんが)
お礼
大変失礼しました。バージョンが分かった方が 回答し易いですよね。今度からそうさせて頂き ます。(ちなみに今回はEXCEL2010)です。
- shut0325
- ベストアンサー率40% (490/1207)
C列を作り、=count(A1:B1) とし、全行にコピー。 その最下部に =countif(C1:C**,"<>0") でどうでしょう?
お礼
ありがとうございます。 ワンクッションおくのも手ですね。 こちらも試してみます。
- bunjii
- ベストアンサー率43% (3589/8249)
>上記の場合、3件としたいのですが ・・・ SUMPRODUCT関数でA列とB列を加算した値が0より大きい組み合わせの個数を加算します。 日付の場合はマイナス値が無いのでマイナスの値を考慮する必要がありません。 =SUMPRODUCT((A:A+B:B>0)*1)
お礼
このようなやり方もあるんですね。 どうもありがとうございます。試してみます。
- MackyNo1
- ベストアンサー率53% (1521/2850)
A列とB列のいずれかにデータが入力されている場合にカウントしたいなら以下のような数式で求めることができます。 =COUNT(INDEX(1/(A1:A100&B1:B100<>""),))
お礼
どうもありがとうございます。 早速試してみます。
補足
(INDEX(1/(A1:A100&B1:B100 この数式のイメージがわからないので教えてもらってもいですか?
お礼
きめ細かいご説明、ありがとうございます。 本当に助かりました。