• ベストアンサー

エクセルで・・・

エクセルで以下のシートがあります。 A   B  C  D 小林  ●  ●  ● 田中 佐藤  ●     ● このシートで、B/C/D列に数にかかわらず、一つでも『●』が入っていたら、1とカウントしたいのです。上のシートでいけば、小林は『1』、田中は『なし』、佐藤は『1』で、合計『2』とカウントしたいのです。どのような関数を使えばいいでしょうか?宜しくお願い致します。

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

  • ベストアンサー
  • tonijn
  • ベストアンサー率13% (16/118)
回答No.7

列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)

euratom
質問者

お礼

まさに求めていたものです!! ありがとうございました。 勉強になりました。

その他の回答 (9)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.10

ワーク列を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)る。

noname#176215
noname#176215
回答No.9

単なるお遊びですが =COUNT(0/MMULT((1:3="●")*1,(ROW(1:256)*0+1))) これで合計が出ますよ。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.8

こんにちは。 実験的に、合計を出す式を作ってみました。 =SUMPRODUCT((COUNTIF(OFFSET(A1,ROW(1:3)-1,1,,255),"●")>0)*1)

  • 4994
  • ベストアンサー率19% (95/487)
回答No.6

  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)
回答No.5

愚直な方法(?)ですが、とりあえず 小林さんのカウント表示セルに =IF(COUNTIF(B5:M5,"●")>0,1,"") でいかがですか? 集計はSUMを使用する。

  • YNi2B2C
  • ベストアンサー率13% (21/156)
回答No.4

count関数が最適でしょう。

  • hmtension
  • ベストアンサー率40% (179/441)
回答No.3

A・B・C・DがそれぞれA1,B2,C3,D4として 『●』が文字ならB5に「=COUNTA(B2:B4)」 同じ要領でC,Dもする 『●』が数字なら「=COUNT(B2:B4)」 同じ要領でC,Dもする

  • jyunhi
  • ベストアンサー率30% (3/10)
回答No.2

以下のアドレスのことでしょうか?

参考URL:
http://pc21.nikkeibp.co.jp/tech/excel36/06/
  • taranko
  • ベストアンサー率21% (516/2403)
回答No.1

=IF(OR(B1="●",C1="●",D1="●"),1,"") B1、C1、D1のいずれかが●であれば1を表示し 違っていれば空白にする これをEのセルに入れてデータのある間コピーし 最後にSUM関数で合計というのはいかがでしょうか。

関連するQ&A

専門家に質問してみよう