• ベストアンサー

エクセルの関数について教えてください。

どの関数を使ったらよいのか教えてください。 1.例えば、1000以上2000以下の数値が入っているセルの個数をカウントしたい。この場合、COUNTIFで式を入れようとしても条件がひとつしか入らないので(">1000"のように)、他のどの関数を使えばいいのでしょうか。 2.ある文字列の中で同じ文字があった場合、その文字とセルの個数をカウントしたい。例えば、ある範囲にA,D,W,D,R,D,A,A,Wとあった場合、A 3,D 3,W 2,R 1というような結果がほしいのですが。 基本的なことで質問して申し訳ないのですが、急いでやらなければならないことがありますのでよろしくお願いします。

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

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

1.に関して言えば、 =IF(C2<1000,"",IF(C2>2000,"","a")) この数式を使う手もあります。 これで、aの数をカウントするんです。 (式の意味は、1000未満なら空欄、2000より大きくても空欄、 そうでなければ=1000以上2000未満なら「a」を表示せよ) とゆぅわけで、後はCOUNTIFで"a"の数を数えると。 2.に関して言えば、nishi6さんの言うとおりで、ピボットテーブルでOKです。 多分分かると思いますが念のため。(大丈夫なら読み飛ばしてください。) (B列の1行目から順に、作家,a,b,a,c,a,b,c,a,d,a,e,dと入っているとしましょう。アルファベット一文字は作家の名前です。) データ(D)→ピボットテーブルとピボットグラフレポート で、ウィザードが出てきて、 分析するデータのある場所は「Excelのリスト/データベース」、作成するレポートの種類は「ピボットテーブル」です。 (ちなみにどちらもそのままそれになってるはずです。) 次へで、使用するデータの範囲を聞かれますので、B列の希望範囲を指定します。 (場合によっては範囲が勝手に指定されています。例では、B1:B13ですね。) 次へで、ピボットテーブルの作成先を聞かれますので、確か下に書いてあったのは、隣の列でよさそうだったので、「既存のワークシート」の「C1」を選んで、次にレイアウトをクリックします。 レイアウトの画面で、「作家」という四角(フィールドって言います)がありますので、これを「行」と書いてあるところと、「データ」と書いてあるところにドラッグします。 (すると、行の上側に色が変わった状態で「作家」、データの欄には、「データの個数:作家」とかかれたものが表示されるはずです。 ちなみに、データの個数になっていない場合は、そこをダブルクリックして、「データの個数」を選んでください。) これで準備OK! レイアウト画面をOKボタンで閉じて、完了をクリックすると、表になって完成します。 以上でした。

golman
質問者

お礼

とてもわかりやすい回答をありがとうございました。 初めてピボットテーブルを使いました。思ったような表を作ることができ感謝しています。どうもありがとうございました。お手数をおかけいたしました。

その他の回答 (5)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

1.について別の方法です。例えば、G2:G11を対象として、  =SUM(IF(G2:G11>=1000,IF(G2:G11<=2000,1,0),0)) として、Ctrl+Shift+Enter で登録します。配列数式を使っています。 2.について、VBAを使うこともないでしょう。   データ→ピボットテーブルと・・・・でピッボットテーブルを使えば直ぐできるでしょう。

golman
質問者

お礼

いろいろな方法があるのですね。使い慣れている人にとっては簡単なことなのでしょうけど、とても勉強になりました。どうもありがとうございました。

  • uc078
  • ベストアンサー率22% (28/127)
回答No.4

え~VBAというのは、「Visual Basic for Application」の略で(確か) 簡単に言うと、(この場合は)エクセル専用のプログラミング言語です。 基礎となっているのは「Visual Basic」という言語です。 1--> 数学の基礎が出来てなくてすいません(^^; フォローどうもです 2--> 何の文字かわからない、ランダムに入っているですか・・・     とりあえず、 No3の cupidchain さんと同じ事が知りたいでっす。

回答No.3

どもでーす。 1.の方にはお答えがあるようなので、 (たぶん、COUNTIF関数の部分に「=」が必要(でないと以上にならない)かと思うのですが・・・揚げ足取っちゃって申し訳ありません。汗) 2.の方を一緒に考えましょう! とりあえず下のこと、教えてください。 ひとつ、文字列はひとつのセルに入ってるのかどうか。 ふたつ、カウント結果は降順(数字の多い順)でアルファベット順である必要があ    るのか みっつ、ローマ大文字のみなのか

golman
質問者

補足

ご回答ありがとうございます。 1.の方のご指摘ありがとうございました。そうですね、=を入れます。 2.の方ですが、アンケート集計をするため、B列に「あなたの好きな作家名」(すべて日本語)が3000行ほど入力されています。ですから理想としてはB列を元にC列に「作家名」、D列に「カウント数」を入れ、それを降順に並べられればと思います。カウント数が降順に並んでいさえすればいいので、同じカウント数の中の順序はどうでもいいのです。ソートは自分でやっても構いませんので、とにかくC列には重複した作家名が表示されないようにしたいわけです。 素人は質問さえもうまくできないのが悲しいです。お手数ですがまたよろしくお願いいたします。

  • 90george
  • ベストアンサー率26% (11/41)
回答No.2

Microsoft Accessはお持ちじゃないですか? 条件式も複数設定できるし、クエリー作成の際にグループ化、カウント機能を使えば2.のようなデータも簡単に作成できますが。 エクセルではちょっと解りません。ごめんなさい。

golman
質問者

お礼

早速ご回答いただきありがとうございます。 私はMicrosoft Accessは持っていないのですが、エクセルより条件式を複数設定できるとのことですから、今度購入しようと思います。

  • uc078
  • ベストアンサー率22% (28/127)
回答No.1

1 COUNTIFを組み合わせて使います。 例) =Countif(範囲,>1000)-Countif(範囲,>2000) これで、範囲内の1000以上2000以下のセルの個数が出てくると思います。 2 こちらは どの文字列があるかがわかっている場合では =Countif(範囲,"a") で、その範囲内の a の個数が出ると思います。("a"は他のセル参照でもOK) ただ、範囲内に何の文字があるかわからずそれらの全ての個数を求める場合は VBAの力が必要かと思います(^^;

golman
質問者

補足

1の方は教えていただいた式で無事できました。ありがとうございました。 あまりの知識のなさに呆れていることだとは思いますが、ご親切に答えていただいて感謝いたします。 また2の方ですが、文字列がわかっていない状態です。「VBA」ってどういう意味ですか?すみませんが教えてください。

関連するQ&A