- ベストアンサー
エクセルで個数計算をする方法
- エクセルで個数計算をする方法について教えてください。
- データが入ったエクセルの特定の列の同じ数字をカウントする方法を知りたいです。
- 個数計算を行う際に、シンプルかつスマートな方法があれば教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
■ 空白セルがない場合 =SUMPRODUCT(($A$1:$A$100="京都")*(1/COUNTIF($B$1:$B$100,$B$1:$B$100))) ■ 空白セルがある場合 =SUMPRODUCT(($A$1:$A$100="京都")*(IF(ISBLANK($B$1:$B$100),0,1/COUNTIF($B$1:$B$100,$B$1:$B$100)))) (*) 配列数式のため、[Ctrl]+[Shift]+[Enter]で確定してください。
その他の回答 (5)
- shikisaito
- ベストアンサー率52% (257/491)
> ■ 空白セルがない場合 > =SUMPRODUCT(($A$1:$A$100="京都")*(1/COUNTIF($B$1:$B$100,$B$1:$B$100))) > > ■ 空白セルがある場合 > =SUMPRODUCT(($A$1:$A$100="京都")*(IF(ISBLANK($B$1:$B$100),0,1/COUNTIF($B$1:$B$100,$B$1:$B$100)))) > (*) 配列数式のため、[Ctrl]+[Shift]+[Enter]で確定してください。 提示した数式は、「A列が異なればB列は異なる」、 つまり、「B列が同じであればA列は同じ」が、前提条件です。 そのため、以下のような場合、正しい結果を返しません。 A列 B列 京都 1 大阪 1 > (1/COUNTIF($B$1:$B$100,$B$1:$B$100))) > の意味が、初心者なので分からないのです。 例えば、 A列 京都 京都 京都 京都 京都 大阪 大阪 大阪 大阪 東京 東京 静岡 愛知 愛知 奈良 山梨 山梨 山梨 山梨 山梨 の場合、 B1に=COUNTIF($A$1:$A$20,A1)を、C1に=1/COUNTIF($A$1:$A$20,A1)を、 それぞれ入力して、下方向へコピーすると、 A列 B列 C列 京都 5 0.2 京都 5 0.2 京都 5 0.2 京都 5 0.2 京都 5 0.2 大阪 4 0.25 大阪 4 0.25 大阪 4 0.25 大阪 4 0.25 東京 2 0.5 東京 2 0.5 静岡 1 1 愛知 2 0.5 愛知 2 0.5 奈良 1 1 山梨 5 0.2 山梨 5 0.2 山梨 5 0.2 山梨 5 0.2 山梨 5 0.2 となります。 B列は「その行のA列の値がA列全体に何個あるか」を、 C列は「その行のB列の逆数」を、それぞれ求めています。 これにより、A列が同じ値のC列の和が必ず1になるので、 C列の総和が「A列の値の種類の数」となります。 これを応用しています。
お礼
懇切丁寧な解説、ありがとうございます。よく理解できました。感謝いたします。これで仕事がはかどります。
[No.3回答に対するお礼]内の質問に対する回答、 》 この後カウントはどのようにすればいいのですか? おやおや。 「[フィルオプションの設定]で重複するレコードは無視して表示されました」なら、下に示す列D、Eのようになったと思います。 次に列Dのみを[フィルオプションの設定]で重複するレコードは無視して列Gが得られますよね。そこで… セル H2 に式 =COUNTIF(D:D,G2) を入力して、此れをズズーッと下方に複写したら列Hのデータが得られる次第で。 A B C D E F G H 1 県名 数 県名 数 県名 個数 2 京都 1 京都 1 京都 4 3 京都 2 京都 2 大阪 4 4 京都 2 京都 3 東京 1 5 京都 3 京都 4 静岡 1 6 京都 4 大阪 5 愛知 2 7 大阪 5 大阪 6 奈良 1 8 大阪 6 大阪 7 山梨 3 9 大阪 7 大阪 8 10 大阪 8 東京 9 11 東京 9 静岡 10 12 東京 9 愛知 11 13 静岡 10 愛知 12 14 愛知 11 奈良 13 15 愛知 12 山梨 14 16 奈良 13 山梨 15 17 山梨 14 山梨 16 18 山梨 15 19 山梨 15 20 山梨 15 21 山梨 16
お礼
ありがとうございます。 [フィルオプションの設定]で表示された値を別の列にcopyして、 また「[フィルオプションの設定]で表示された値を別の列にcopyしてをしてカウントする、 と理解していいのですか?
[フィルオプションの設定]の“重複するレコードは無視する”機能で抽出したものをカウント。 ↑「ごつごつアレコレ」方式で恐縮ですが、説明だけ「出来るだけシンプルにスマートに」しました。 不明な点はその旨お知らせを。
お礼
ありがとうございます。 >[フィルオプションの設定]の“重複するレコードは無視する”機能で抽出したものをカウント。 [フィルオプションの設定]で重複するレコードは無視して表示されました。 この後カウントはどのようにすればいいのですか?
- imogasi
- ベストアンサー率27% (4737/17069)
例データ A+B列でソートされているとする。県は集っていて、かつ、番号の同じものは隣り合って集っているとする(注1) A2:B25 A列 B列 D列 E列 京都 1 京都 4 京都 2 大阪 4 京都 2 東京 2 京都 3 静岡 1 京都 4 愛知 4 大阪 5 奈良 1 大阪 6 山梨 4 大阪 7 大阪 8 東京 6 東京 9 東京 9 静岡 10 愛知 11 愛知 12 愛知 13 愛知 14 奈良 13 山梨 11 山梨 14 山梨 15 山梨 15 山梨 15 山梨 16 D2:D8は上記D列のように県名があるとする。(注2) E2に =SUM(IF(($A$2:$A$25=$D2)*($B$2:$B$25<>$B$3:$B$26),1,0)) と入れてSHIFT+CTRL+ENTERを同時押し(配列数式) E2の式をE8まで式を複写する。 結果 上記E列E2:E8 (注1)この仮定が置けない場合は、別のとき方になる (注2)県名を関数で1つづつ集めるやり方はありますが、本質問のメインで無いとして略。 OKWAVEでの過去の「imogasi方式」で照会してもらえば、私の回答にあると思う。
お礼
ありがとうございます。 やはり配列ですか? 私はもう一つ理解力不足ですが、やってみます。
- hirumin
- ベストアンサー率29% (705/2376)
=COUNTIF(A:A,"京都) ほかは「京都」の部分を書き換えて下さい。
お礼
ありがとうございます。それで =COUNTIF(A:A,"京都") の式で、京都の個数が4にならないのですが? 5になるのですが、私がどこか間違っているのでしょうか?
お礼
ありがとうございます。 (1/COUNTIF($B$1:$B$100,$B$1:$B$100))) の意味が、初心者なので分からないのです。 すみませんが、少し解説をお願いできると嬉しいのです。