• 締切済み

1レコード(1行)のいずれかの列に指定文字列が含まれるレコード件数

EXCEL2003において、  列1,列2,列3・・・・ 行1 A,,B 行2 A,,, 行3 A,,A, 行4 B,,, ・・・・・・・・・・・・・・ 上記のように列1~3(実際は5列あります)に複数の データが入っています。 列1~5のいずれかに文字列「A」が含まれる行の件数を カウントしたいと考えています。 なお、行3のように列1、3に「A」が含まれる場合でも 1件と計上します。 上記例ですと、行1~3でそれぞれ1件ずつ計上、行4は対象外 とされて結果は計3件。 と集計できる方法について教えてください。 できればマクロは使わずに関数でと考えています。 よろしくお願いします。

みんなの回答

回答No.6

#2です。「BAC」などの文字列もあって、かつ、カウントの対象になるのですね。 前回の回答で対応させると =FREQUENCY(MMULT(FIND("A",A1:C4&"A")-LEN(A1:C4)-1,{1;1;1}),-1) 配列数式 &連結のほうがわかりやすいですね =COUNT(FIND("A",A1:A4&B1:B4&C1:C4)) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる) 参考まで

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

データがA1:C4にあるとして、↓でどうでしょう? =SUMPRODUCT(1*ISNUMBER(FIND("A",A1:A4&B1:B4&C1:C4)))

grorydays
質問者

お礼

このやり方もいけますね。 SUMPRODUCTでこのような集計ができるとは知りませんでした。 よい勉強になりました。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

A列からE列まででデータが例えば最大1000行目であるとしたら次の式でAのある行の数を表すことができます。 =SUMPRODUCT(NOT(ISERROR(FIND("A",(A1:A1000)&(B1:B1000)&(C1:C1000)&(D1:D1000)&(E1:E1000))))*1)

grorydays
質問者

お礼

SUMPRODUCTやISERRORで計上できるのですね。 使用したことのない関数でしたので勉強になります。 ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.1です! たびたび失礼します。 そうですかぁ~~? 空白の場合のエラー処理をしていないので、I2セルが空白の場合は全ての列に「1」が表示されると思います。 前回の表のG2セルに =IF($I$2="","",IF(OR(ISNUMBER(FIND($I$2,A2:E2))),1,"")) という数式を入れ、Shift+Ctrl+Enterキーで確定してみてください。 それをオートフィルで下へコピーするとたぶん大丈夫だと思います。 (こちらで確認してみるとOKでした) もし、これでも希望通りにならない場合はごめんなさいね。m(__)m

grorydays
質問者

お礼

できました! ご丁寧な回答をいただき、ありがとうございました。

回答No.2

酔っ払いCoalTarです 3列での計算 =FREQUENCY(MMULT(-(A1:C4="A"),{1;1;1}),-1) あまり使われる関数ではないので 作業列を用いた方がわかりやすいと思います。参考まで

grorydays
質問者

お礼

ちょっと使いこなせるか不安でしたが、よい勉強になりました。 ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 外していたらごめんなさい。 ↓の画像のように作業用の列を使わせてもらっています。 作業列G2セルに =IF(OR(ISNUMBER(FIND($I$2,A2:E2))),1,"") これは配列数式になってしまいますので、 この画面からコピー&ペーストしただけではエラーになると思います。 貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 この数式を入れオートフィルでずぃ~~~!っと下へコピーします。 そして、結果のJ2セルは単純に =SUM(G:G) としています。 これで、I2セルに検索したい文字列を入力すると その文字がある行数の合計が表示できると思います。 以上、参考になれば幸いですが 的外れなら読み流してくださいね。m(__)m

grorydays
質問者

お礼

回答ありがとうございます。 重ねて質問があります。 ご教示頂いた関数について、「$I$2」に直接検索文字列を ""にて指定し実行しました。 結果なのですが、最初に関数を設定したセルにのみ、該当 する文字列がないにもかかわらず「1」が出力されました。 添付して頂いた画像でいいますと、検索文字列に"AN"を指定した 関数をG2に設定したところ「1」が出力されます。 なぜ「1」が出力されてしまうのでしょうか?

関連するQ&A