- ベストアンサー
エクセルで・・・
エクセルで以下のシートがあります。 A B C D 小林 ● ● ● 田中 佐藤 ● ● このシートで、B/C/D列に数にかかわらず、一つでも『●』が入っていたら、1とカウントしたいのです。上のシートでいけば、小林は『1』、田中は『なし』、佐藤は『1』で、合計『2』とカウントしたいのです。どのような関数を使えばいいでしょうか?宜しくお願い致します。
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
列Eに以下の関数を入れてみてください。 E2 =IF(COUNTA(B2:D2)=0,0,1) E3 =IF(COUNTA(B2:D2)=0,0,1) E4 =IF(COUNTA(B2:D2)=0,0,1) E5 =SUM(E2:E4)
その他の回答 (9)
- imogasi
- ベストアンサー率27% (4737/17069)
ワーク列を1列使えば、簡単なCOUNTIFとSUMの問題になります。 何とか使わないで方法はないか。 配列数式の回答例。 データ例 A1:E10に下記の状態でセルに●が入っているとします。 小林 ● ● ● ● 田中 佐藤 ● ● 大島 ● 木田 ● 恩田 川田 ● ● ● 重田 植田 小田 ● たとえば、B15に =SUM(IF(COUNTIF(OFFSET(A1,ROW(A1:A10)-1,1,1,10),"●")>0,1,0)) 結果は 6 ------ COUNTIFの第1引数は範囲を指定しますが、本質問例では B1:D1 B2:D2 B3:D3 のように、3行なので、3つ指定しないとなりません。 その場合普通の問題なら、配列数式ではA1:A10のように1組で指定します。ところが本質問の場合は、A1:B3:A3:B3のようには指定できないので、何か工夫して、A1:A10のように1つにする工夫が要ります。それを、範囲を返すOFFSET関数とROW関数で実現しています。 <OFFSET(A1,ROW(A1:A10)-1,1,1,10)についての引数説明(参考)> A1---A1を基点(範囲の左上隅)として ROW(A1:A10)---A1:A10のそれぞれの場合(配列数式にするとこうなる)に置いて。-1するのは、ずれの数がA1は0で、0から始まるため 1----列数1列ずれた(B列)ところから 1----高さ(1行)で 10---10列(B-K列まで) の範囲を指定してます。 この範囲(回答例ではB2:K10の範囲の毎行)で毎行「●」のCOUNTIFを行い、あれば(IFで聞く、>0)、1を加え、なければ0を加え(SUM)る。
単なるお遊びですが =COUNT(0/MMULT((1:3="●")*1,(ROW(1:256)*0+1))) これで合計が出ますよ。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 実験的に、合計を出す式を作ってみました。 =SUMPRODUCT((COUNTIF(OFFSET(A1,ROW(1:3)-1,1,,255),"●")>0)*1)
- 4994
- ベストアンサー率19% (95/487)
A B C D 1 小林 ● ● ● 2 田中 3 佐藤 ● ● 4 合計 2 1 2 上記のように計算したいということなら COUNTA(範囲) B4に COUNTA(B1:B3) C4に COUNTA(C1:C3) D4に COUNTA(D1:D3) 質問の解釈が違っていたらすみません。
- banzaiA
- ベストアンサー率16% (100/595)
愚直な方法(?)ですが、とりあえず 小林さんのカウント表示セルに =IF(COUNTIF(B5:M5,"●")>0,1,"") でいかがですか? 集計はSUMを使用する。
- YNi2B2C
- ベストアンサー率13% (21/156)
count関数が最適でしょう。
- hmtension
- ベストアンサー率40% (179/441)
A・B・C・DがそれぞれA1,B2,C3,D4として 『●』が文字ならB5に「=COUNTA(B2:B4)」 同じ要領でC,Dもする 『●』が数字なら「=COUNT(B2:B4)」 同じ要領でC,Dもする
- jyunhi
- ベストアンサー率30% (3/10)
以下のアドレスのことでしょうか?
- taranko
- ベストアンサー率21% (516/2403)
=IF(OR(B1="●",C1="●",D1="●"),1,"") B1、C1、D1のいずれかが●であれば1を表示し 違っていれば空白にする これをEのセルに入れてデータのある間コピーし 最後にSUM関数で合計というのはいかがでしょうか。
お礼
まさに求めていたものです!! ありがとうございました。 勉強になりました。