Excelで効率的な集計方法を教えてください

このQ&Aのポイント
  • Excelで200行×50列ほどの表で、特定の条件を満たすセルの数を集計したいです。
  • 現在は範囲を直接指定してCOUNTIF関数を使って集計していますが、セルの数式が長くなり見づらいです。
  • 効率的な集計方法や、数式を簡潔にする方法を教えてください。
回答を見る
  • ベストアンサー

Excelで「範囲内の一つ以上に値が入っている」

200行×50列ほどの入力欄がある表で、「入力するセルの左にある特定のセルの値が同じである範囲のうち一つ以上に値が入っていたら1」とカウントしたいです。 A__DEF 1__○_○ 2__○○_ 3___○○ 3__○__ 4__○_○ 4__○○○ 4____○ 5___○_ 6__○○○ 例えば上のような状態の時、D列は「5」E列は「5」F列は「4」になってほしいです。 今は範囲を直接指定してSIGNとCOUNTIFで集計しているのですが、行数が多くなると数式も長くなり、見づらかったりセルの限界に達したりしてしまいます。 いい方法があれば教えてください。 前提条件に不足があるようなら補足で説明します

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

ご相談に例示されたようにA列に数値が記入してあるなら =COUNT(1/FREQUENCY(IF(D1:D200="○",$A1:$A200),IF(D1:D200="○",$A1:$A200))) と記入して、必ずコントロールキーとシフトキーを押しながらEnterで入力。右にコピー。 A列は数字というのがウソなら =COUNT(1/FREQUENCY(IF(D1:D200="○",MATCH($A1:$A200,$A$1:$A200,0)),IF(D1:D200="○",MATCH($A1:$A200,$A$1:$A200,0)))) と記入して、必ずコントロールキーとシフトキーを押しながらEnterで入力。右にコピー。

play_with_you
質問者

お礼

A列は必ず数値で、番号が飛ぶことはまれにありますが必ず昇順です。 教えていただいた式で望み通りのカウントになりました。ありがとうございます。

関連するQ&A

  • Excelで数式入り範囲の特定の答えの個数を知りた

    ある1列の範囲(A2~A51)の中に0から4迄の数字がランダムに入っています。その中で、0が入っているセルなら、その次に何の数字が入っているのかを、B2~F51まで集計しています。例えばB2の数式は=IF($A2=0,OFFSET($A2,1,0),"")です。 本題はその、B2~F51の中で、0から4迄数字別の出現数を知りたくて、I2のセルに、=COUNTIF($B$2:$B$51,"0")を入力したのですが、エラーが出ます。 多分B2~F51までは数字でなく数式が入っているためにカウントできないと思いますが、これをカウントできるようにしたいのです。 ややこしいので画像を添付していますので、参考にして下さい。 よろしくお願いします。

  • Excel 配列数式

    Excelにて日付の2列x数行からなる表があります。 A列  B列 1 2008/2/1 0:00 2008/2/2 12:00 2 2008/3/1 0:00 2008/3/3 00:00 .. 集計セル: A列とB列を比較して、24時間以内の誤差である行数をカウントした結果を 集計セルに入力したいのですがどのようにしたら良いでしょうか? B列からA列を引いて-1以上1以下の場合を真として、その結果をカウントして 集計セルに叩き込めばよいと思いますが、思うようにできません。。 配列数式を使えば出来そうな気がしますが思ったような結果が得られ ません。 よろしくお願いします。

  • EXCELでのカウント

    こんんちは!いつも使っている簡単な関数ならわかるのですが... 範囲→1列(A列やB列) 範囲内で指定の文字が入力されているセルの数をカウントしたい(返したい)んです。 例)B列に「2」「23」「50」「13」「12」と入力されているとしたら   「2」を入力しているセルをカウントしたかったら   「3」と出てくるように... COUNTIF関数だと「2」を指定したら「2」と入力したセルだけカウントされますよね。(例えば上記例だと「1」と帰ってくる。これを「2」を含んでいるセルの数をカウントしたいんです。 教えてください。 宜しくお願いいたします。

  • [Excel]COUNTIFの検索範囲条件をセル参照でしたい

    Excel2002+WinXPを使用しています。 COUNTIF関数を使ってある重みの数値をカウントしています。 =COUNTIF($A$1:$A$200,"2") =COUNTIF($A$1:$A$200,"3") など この例ではA列の1から200までを検索していますが、 この行数(200の部分)が毎回変わります。 今は毎回200の部分を手で書き換えています。 どこか行数を入力したセルを参照して検索範囲条件を指定できないものでしょうか? うまいやり方があれば教えてください。

  • エクセル

    Excel2010で、色つきセルの中で指定した文字列を数える数式はありますか? 入力された文字列は15種類、それが色つきセルになっているものと、色がついていないセルに分かれています。文字列別のカウント(色つきセルも色無しセルも区別のない、文字列のみの条件でのカウント)はCOUNTIFで既に出ていますが、色つきになっているセル限定で文字列別にカウントするのはどうしたらいいでしょうか?

  • ExcelのCOUNTIFで条件の値に1を足す方法

    ExcelのCOUNTIFを使って集計をしています。 「Log」とういうシートのデータを固定で範囲指定(オートフィルで範囲が変わってしまうため)し、その中に「Sheet1」のA列のデータ(文字列:氏名)といくつ合致しているかを集計しようとしています。 =COUNTIF(Log!$B$7:$B$510,"*A1*") 上記数式をG1に入力しオートフィルでコピーしてもコピー先の数式は何も変わりませんでした。 =COUNTIF(Log!$B$7:$B$510,"*A2*")と手入力し再度コピーすると ・・・"*A1*"、・・・"*A2*"、・・・"*A1*"、・・・"*A2*"となるだけでした。 どうすればオートフィルでA1,A2,A3…となってくれるでしょうか? もし他の(簡単な)方法があれば教えていただければ幸いです。 使用ソフト:Excel2002 よろしくお願いいたします。

  • Excelの関数COUNTIFについて

    ExcelにCOUNTIFを設定しています。 セル範囲【D9:Y9】には、 ○、△、×のいずれかが入力されています。 A9が空欄でなければ、○の数をカウントするには、 以下の数式でOKでした。  =IF(A9="","",COUNTIF(D9:Y9,"○")) この数式を○か△であればカウントするような数式に 変更したいのですが、なかなかうまくいきません。 ORを組み合わせればいいのでしょうか・・・ Excelのバージョンは2003です。 よろしくお願いいたします。

  • エクセル:バグという名の仕様?

    エクセル2003で 0.03 -0.75 0.3 -2.5 -7.5 -3.6 4.2 -5.6 3.5 というデータがあるときに =COUNTIF(SIGN(A1:A9),1) としたら数式を受け付けられませんでした そこで、 =COUNTIF(INDEX(SIGN(A1:A9),),1) としたら、数式は受け付けられるようになりましたが #VALUE! となりました 配列数式として確定しても症状は変わりません 仕方なく作業セル列をB1:B9に儲け A1:A9に対しそれぞれsign関数を先に掛けておいて =COUNTIF(INDEX(B1:B9,),1) =COUNTIF(B1:B9,1) としたところ共に今度はちゃんと数えてくれました 試しに =COUNTIF(INDEX(B1:B9,),1) の INDEX(B1:B9,)の内側「B1:B9」を選択し ファンクションキー「F9」で{1;-1;1;-1;-1;-1;1;-1;1}に変えてみたところ 値が「#VALUE!」に変わります 何が間違っているのでしょうか? 皆様のシステムでも再現する症状なのでしょうか? お教えください。 (;´_`;)

  • エクセルでセルの値を数式の範囲として使うには?

    タイトル通りなのですが、エクセルでセルの値を数式中で範囲として使うにはどうすればよいのでしょうか? 例えばA1セルに「1」という値が入っており、B2セルに「10」という値が入っているとします。この時、数式中で、「A1」と「B2」を用いて、「E1からE10まで」を指定することは可能でしょうか。可能でしたらどのような数式を組めば良いのでしょうか? よろしくお願いします。

  • エクセルで挿入した列に関数が値を返しません。

     エクセルで列を挿入したセルに、関数を入力しても値を返しません。 関数を入力しても、数式バーに表示される数式がセルに表示されるだけで、答えは出ません。式はあっていて、違うセルに数式をコピーして張り付けると、値を返します。  また、挿入した列に元からある空白の列をコピーして貼り付け、関数を入力しても値を返します。  どこかで変な設定をしてしまったのでしょうか?  分かる方、どうか教えてください。

専門家に質問してみよう