• ベストアンサー

Excelである特定の範囲のデータ数を算出する方法

会員に何度かDMを送付し、例えばAさんは10%、Bさんは50%、Cさんは80%など、送付回数あたりで実際に来店した人の来店率が予め算出されていたとします。 その場合、全会員のうち、来店率が0%から10%までの人の数、11%から20%までの人の数といったように、来店率の範囲ごとにデータ数を抽出するには、Excelでどのように集計を行なえばよいでしょうか。いろいろ調べ、FREQUENCY関数などがいいのかなと思いましたが、どうもうまく各範囲のデータ数が割り出せません。ちなみにマクロの知識はありません。また、率は四捨五入し、小数点以下は省いています。 皆さんのよきアドバイスをお待ちしています。m(__)m

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

  • ベストアンサー
回答No.5

質問を良く見たら0%のときがまずかったです。m(_ _)m G2:G11セル範囲を選択して =FREQUENCY(C2:C10,E2:E11) [Ctrl]+[Shift] +[Enter] で確定します 添付図参照 ちなみに、どの方法でも整数に丸めると誤差が出ます。 丸める前のものを計算対称にする事を勧めます

amary
質問者

お礼

これが一番近いです!参考例を出していただき有難うございます。

その他の回答 (6)

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

FREQUENCY COUNTIFS 2007の場合 COUNTIF SUMPRODUCT (ほかにVBAや配列数式)で出来ると思うよ。 エクセtルのバージョンも質問に書いてない。 ーーー 質問のデータの有様(データ例などシートの行と列の情況がわかるデータ)を書かないで、>うまく出来ません、>皆さんのよきアドバイスをお待ちしていま、といってもムダと思う。 回答者でさえ#5さんのように、きちっとデータ例を示してくれている。質問者が手抜きをしてどうする。 ーー 基本的にFREQUENCY関数で出来るタイプの課題と思うが。

amary
質問者

お礼

手抜きという訳ではなく、元のデータ例は文章で書かせていただきました。指定範囲の件数が算出できればいいだけなので、Excelのバージョンなどは全く関係ないかと… 回答は、皆様多少の違いはあれど、算出できるのに十分な情報をいただき、しかもこれだけの件数の回答が来るとは思っていませんでした。データ例の画像まで載せていただいた方々も本当に有難うございます。皆様のご回答に感謝いたします。m(__)m

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

例えばC2セルから下方に来店率が表示されているとします。 E2セルから下の行には10%,20%,30%・・・100%とE11セルまで入力します。 F1セルには左表示%以下で上の行に+1%までの件数とでも入力します。 F2セルには次の式を入力してF11セルまでオートフィルドラッグします。 =COUNTIF(C:C,"<="&E2)-SUM(F$1:F1) これでF列にはその件数が表示されますね。

amary
質問者

お礼

その方法もありますね!有難うございます。

回答No.4

F1セルからF11セルまでの範囲を選んで =FREQUENCY(C2:C10,E1:E10) [Ctrl]+[Shift] +[Enter] で確定、配列数式です({}で囲まれる) 添付図参照

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

こんばんは! 会員氏名は関係なく数を集計したいわけですよね? 一応そういうことだと解釈させていただいて回答します。 元のデータがどのような感じか分からないので 勝手にこちらで↓のような表を作ってみました。 作業列としてC列を利用しています。 まず、C2セルに =IF(B2="","",MATCH(B2,$E$2:$E$11,1)) としてオートフィルで下にコピーします。 そのデータを元に H列に各パーセント数の数を表示させます。 H2セルに =COUNTIF($C$2:$C$13,ROW(A1)) として下へコピーすると 表のような感じになります。 尚、データはA13までの数式ですので データが多い場合は数式の範囲指定をアレンジしてみてください。 以上、参考になれば幸いですが、 的外れなら読み流してくださいね。m(__)m

amary
質問者

お礼

データ例を提示いただいた有難うございます。m(__)m

回答No.2

=COUNTIF(<%列>,"<=10%") =COUNTIF(<%列>,">=11%")-COUNTIF(<%列>,">20%") ・・・ あるいは、 =SUMPRODUCT((<%列><=10%)*1) =SUMPRODUCT((<%列>>=11%)*(<%列><=20%)*1) ・・・ という感じでしょうか。

amary
質問者

お礼

こういうやり方もあるのですね!参考にいたします。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

仮にA列に氏名、B列に来店率があるとします。 1行目が見出し行で2行目から300行までがデータだとしたら 0%以上、10%以下を求めるなら =SUMPRODUCT(($B$2:$B$300>=0%)*($B$2:$B$300<=10%)) 10%超、20%以下を求めるなら =SUMPRODUCT(($B$2:$B$300>10%)*($B$2:$B$300<=20%))

amary
質問者

お礼

有難うございます。m(__)m 自分が不勉強な部分がありました。参考にさせていただきます。