ラベル countif関数 の投稿を表示しています。 すべての投稿を表示
ラベル countif関数 の投稿を表示しています。 すべての投稿を表示

9/14/2026

Excel。範囲内の文字列が入力されているセルを数えるには【Count the characters】

Excel。範囲内の文字列が入力されているセルを数えるには

<COUNTIF関数>

範囲内にある日付を数えるにはCOUNT関数をつかうことで対応できます。

 

範囲内の文字列が入力されているセルを数えるには

では、範囲内にある文字列が入力されているセルを数えるにはどうしたらいいのでしょうか。


文字という条件ですから、条件付きで件数を求めることができる関数のCOUNTIF関数をつかうのですが、文字という条件をどう設定するのかというのがポイントですね。


文字という条件。実は「*」(ワイルドカード)をつかうことで解決します。


山* とすれば、山田・山中・山内というように、山で始まる文字が該当します。


ですから、「*」(ワイルドカード)だけにすれば、文字が含まれるという意味になるという仕組みです。


では、E1にCOUNTIF関数で数式を設定します。


=COUNTIF(B2:B8,"*")


これで、文字列が入力されている件数を求めることができました。


4/29/2025

Excel。先頭の文字と同じデータが何件あるのかを一発で求めたい【Same data】

Excel。先頭の文字と同じデータが何件あるのかを一発で求めたい

<COUNTIF関数>

会員番号の同じ頭文字が何件あるのかを、手早く求めたいのですが、どのようにしたらいいのでしょうか。

先頭の文字と同じデータが何件あるのか

会員番号がAが何件で、Bが何件かをE列に求めたいわけです。


例えば、C列などに、LEFT関数などをつかって、左から1文字目を抽出してから、それぞれを数えれば、求めることはできます。


しかし、途中計算列を設ける必要があるわけです。


どうにか、一発で求めることはできないのでしょうか。


そこで、先頭の左から1文字という条件で数えたいので、COUNTIF関数をつかって数式をつくってみます。


次の数式をE1につくってみました。


=COUNTIF($B$2:$B$6,D1&"*")


オートフィルで数式をコピーします。


これで、件数を求めることができました。


この数式を説明します。

=COUNTIF($B$2:$B$6,D1&"*")


最初の引数は、「範囲」です。


これは、B2:B6のデータが対象なので、$B$2:$B$6と設定します。

オートフィルで数式をコピーしますので、絶対参照を忘れずに設定します。


2つ目の引数は、「検索条件」。ここがポイントになります。


先頭の1文字目以降は、何文字あっても関係ありません。

そして、幸いD列に先頭の1文字目が用意されいます。


この先頭の1文字目から始まるという条件をつくれば、数えることができます。


そこで、ワイルドカード(*)を組み合わせた検索条件にすればいいというわけです。


よって、検索条件を D1&"*" とすることで、件数を求めることができたというわけです。


なお、セル番地とワイルドカードを組み合わせる場合には、「&(アンパサンド)」で結合する必要があります。


またワイルドカードの「*(アスタリスク)」は「”(ダブルコーテーション)」で囲む必要があります。

4/23/2025

Excel。横長の表から必要な列だけを手早く抽出するにはどうしたらいい【Columns】

Excel。横長の表から必要な列だけを手早く抽出するにはどうしたらいい

<FILTER+COUNTIF関数>

横長の表から、必要な列だけを抽出するとなると、なかなか面倒です。

FILTER+COUNTIF関数

今回は、4月から6月の売上列を抽出した表をつくりたいわけです。


サンプルなのでデータ量が多くありません。


このような場合、コピペで対応できるとは思いますが、データ量が多い場合、列を選択するだけでも大変です。


そこで、FILTER関数とCOUNTIF関数を組み合わせるだけで、手早く、抽出した表をつくることができます。


では早速やってみましょう。

事前準備として、抽出したい列の見出し行を用意します。


A7:E7に抽出したい見出しを用意しました。


A8に次の数式を設定します。


=FILTER(A2:H5,COUNTIF(A7:E7,A1:H1))


これだけで、抽出することができました。

 

FILTER関数は、スピル機能対応なので、オートフィルで数式をコピーする必要はありません。


これで、完成しました。

では、この数式を確認しておきましょう。


FILTER関数は、抽出する関数です。

最初の引数は、「配列」。データなので、A2:H5を範囲します。

見出しは不要です。


2つ目の引数は、「含む」。

条件です。

この引数に、1行の配列を指定すると、列の抽出を行うことができます。


そこで、COUNTIF関数をつかって、用意した見出しと一致したら「1」と算出されてます。

1となった列が抽出されるという仕組みです。


それでは、データタブの「数式の検証」をつかって確認してみます。


数式の計算ダイアログボックスにある検証ボタンを2度クリックします。


COUNTIF関数の結果を見ると、用意した見出しのところが「1」になっていることが確認できます。


ただし、この数式には、欠点があります。

左から同じ順番でないと、抽出することができません。


6月売上,5月売上,4月売上 というように、順番を変更してしまうと、抽出はされますが、見出しと合致しないデータになってしまいます。


このように、FILTER関数とCOUNTIF関数を組み合わせることで、手早く指定した表を抽出することができます。

1/08/2025

Excel。文字列の最頻値は、どのようにして求めたらいいのでしょうか。【Mode】

Excel。文字列の最頻値は、どのようにして求めたらいいのでしょうか。

<UNIQUE関数,SORT関数,COUNTIF関数>

分析の一つのデータに「最頻値」というのがあります。


最頻値は、データ内で一番多くあるデータです。


その最頻値を求めるには、MODE.SNGL関数というのが用意されています。


では、次のデータで、一番多い都道府県名を求めてみましょう。

文字列の最頻値

 D2に設定した数式は、

=MODE.SNGL(B2:B16)


ところが、#N/Aというエラーが表示されてしまいました。


原因は、どこにあるのでしょうか。


MODE.SNGL関数の引数を確認してみると、原因がわかります。


数値1・数値2…となっています。


つまりMODE.SNGL関数は数値ならば、最頻値を求めることができるのですが、都道府県名という文字列では、最頻値を求めることができません。


ピボットテーブルをつかうのもいいのですが、今回は関数で対応していきます。


D1をクリックして、次の数式を設定します。


=UNIQUE(B2:B16)

UNIQUE関数は、データから重複を除いた、一意のデータを抽出することができる関数です。


まずは、重複を除いた一意のデータを抽出します。


UNIQUE関数は、スピル機能対応の関数なので、D3以降は、ゴーストが発生します。

よって、オートフィルで数式をコピーする必要はありません。


続いて、件数を求めます。

単一条件の件数を求めるので、COUNTIF関数をつかいます。


E2をクリックします。


E2に設定する数式は、

=COUNTIF(B2:B16,D2#)


スピル機能対応の設定にしましたので、ゴーストが発生します。


引数の最初の範囲は、B2:B16


2つ目の引数は、検索条件。

D2#とします。

「#」は、範囲内の1件という意味です。


これで、最頻値を求めることができました。


ただ、できることならば、件数が多い順にしたいわけですが、一つの表ではないので、件数を降順にするわけにはいきません。


そこで、SORT関数をつかって、新たに表を作ります。


=SORT(D2:E7,2,-1,FALSE)


これで、件数が降順のリストをつくることができました。

最頻値は、千葉県であることが、よりわかりやすくなりました。


このSORT関数もスピル機能対応の関数なので、オートフィルで数式をコピーする必要はありません。


引数も確認しておきましょう。


最初の引数は、配列。D2:E7を設定します。


2つ目の引数は、「並べ替えインデックス」。

どの列で並べ替えるのかということなので、2列目ですから、2と設定します。


3つ目の引数は、「並べ替え順序」。

降順にしたいので、「-1」で設定します。


4つ目の引数は、「並べ替え基準」。

行で並べ替えをしますので、FALSEで設定します。


新しく追加された関数を組み合わせてつかうことで、文字列の最頻値を求めることができました。


今回は関数という条件をつけましたが、ピボットテーブルをつかえば、もっと手早く求めることができます。

8/29/2024

Excel。データ内に1度も登場しないアイテムをわかるようにセルを塗りつぶしたい【Never】

Excel。データ内に1度も登場しないアイテムをわかるようにセルを塗りつぶしたい

<条件付き書式+COUNTIF関数>

販売データ内に1度も登場しない。


つまり、1個も販売していない商品を見つけたいわけです。

データ内に1度も登場しないアイテム

B2:B11に売上データがあります。

商品リストがD2:D5


B2:B11にD2:D5のデータが合致しないものを見つけたいわけです。


合致しない場合には、セルを塗りつぶしたいわけです。

そこで、条件付き書式をつかって、設定していきます。


条件付き書式をつかいますが、合致しないという条件は用意されていないので、条件式を作って対応していきます。


D2:D5を範囲選択して、ホームタブの条件付き書式にある。


新しいルールをクリックします。


新しい書式ルールダイアログボックスが表示されます。


「数式を使用して、書式設定するセルを決定」を選択します。


条件式を設定するボックスには、

次の数式を設定します。

=COUNTIF($B$2:$B$11,D2)=0


あとは、書式ボタンをクリックして、塗りつぶす色を設定したら完成です。


条件式を確認しておきましょう。


データがないということなので、「0」ということです。

そこで、条件付きで件数を算出する関数であるCOUNTIF関数をつかいます。


COUNTIF関数の最初の引数である、範囲は、$B$2:$B$11 と絶対参照を設定しますが、2つ目の引数である、検索条件は、D2。

こちらは絶対参照にしません。


この結果が、0と等しいならば、データが無いということなので、B2:B11に無いデータということがわかります。

5/31/2024

Excel。複数列のデータから、重複を除いた件数を手早く求めたい【overlapping】

Excel。複数列のデータから、重複を除いた件数を手早く求めたい

<SUM+COUNTIF関数>

重複を除いた件数を算出する方法は色々あります。


今回は、複数列にあるデータから重複を除いた件数を手早く算出するには、どのようにしたらいいのでしょうか。

重複を除いた件数

B2の入力されている「箱根」は、4つありますが、これを1として数えたいわけです。


つまり、重複されているものは1件として数えるわけです。


「重複を除く」という条件で数えたいわけですから、COUNTIF関数をつかうわけですが、COUNTIF関数だけは対応することができません。


そこで、D8には、次の数式をつくってみました。


=SUM(1/COUNTIF(B2:D6,B2:D6))

これで、8件と算出することができました。


数式の仕組みを確認します。


SUM関数は、いいとして、COUNTIF関数の動きがどのようになっているのか確認します。


F1を起点として、先程の表をコピーしました。


G2に、

=COUNTIF(B2:D6,B2:D6)

とSUM関数内のCOUNTIF関数の数式部分を抽出した結果を算出してみました。


箱根は4件あるということがわかります。

1のところは、1件しかないというわけです。


続いて、数式を修正します。

=1/COUNTIF(B2:D6,B2:D6)


算出された数値を全部合算することで、8と算出されるという仕組みです。


先程、4と数えられたものを1としたいわけです。

なので、1/4とすれば0.25となります。


0.25が4つあるので、1とすることができるという数式をつくってみたというわけです。


そのため、

=SUM(1/COUNTIF(B2:D6,B2:D6))

という数式で、重複を除いた件数を算出できたというわけです。

5/07/2024

Excel。複数回答のアンケート結果を手早く集計するには、どうしたらいいの。【questionnaire】

Excel。複数回答のアンケート結果を手早く集計するには、どうしたらいいの。

<COUNTIF関数>

次の表は、複数回答ありのアンケート結果です。


E2:F7までの表がアンケート結果です。

5名が回答した結果がF列に入力されています。

それぞれのA~Dまでの集計結果がC列に算出されています。


複数回答なので、Aが何件あるのか、Bが何件あるのかを集計したいわけです。

目視で確認したくありません。

そこで、効率的な集計方法はないものでしょうか。


F列が、一文字ならば、Aだったら、何件というようにすれば、数えることができます。

ただし、複数回答がOKですから、一文字の場合もあれば、最大4文字が入力されているので、単純にCOUNTIF関数やCOUNTIFS関数では、対応するのが難しいように思えます。


このような場合、実は、COUNTIF関数で対応することができます。

ただ、条件に工夫が必要になります。


工夫というのは、「Aという文字が含まれているか」とすればいいわけです。


「含む」ということで、ワイルドカードの「*」を合わせてつかうことで、対応することができます。


C3に数式を設定します。

=COUNTIF($F$3:$F$7,"*"&$A3&"*")

あとは、オートフィルで数式をコピーします。

アンケート結果

数式を確認します。


最初の引数は、「範囲」です。回答のF3:F7を範囲選択します。

また、オートフィルで数式をコピーするので、絶対参照も忘れずに設定します。


2つ目の引数は、「検索条件」です。

ここで、「”A”」と設定してしまうと、複数回答のセルは、条件が合致しません。


そこで、「*」(ワイルドカード)で、条件を囲ってあげます。

「"*"&$A3&"*"」

これで、含むという条件にすることができます。


A3はAなので、「Aという文字を含むなら」という条件をつくることができるというわけです。

2/29/2024

Excel。先頭の文字と同じデータが何件あるか、手早く算出したい。【first character】

Excel。先頭の文字と同じデータが何件あるか、手早く算出したい。

<COUNTIF関数>

データの先頭の文字と同じデータが何件あるのかを算出したい場合、どのようにしたらいいのでしょうか。


先頭の文字が何件ということから、COUNTIF関数かCOUNTIFS関数をつかうわけですが、考えないといけないのが、検索条件です。


次の表をつかって説明します。

先頭の文字と同じデータ

B2:B8まえに会員番号が入力されています。

この会員番号は、先頭の文字ごとにAからCで区分されています。


E2:E4に区分されているAからCの件数を算出したいわけです。

そこで、E2には、次の数式を設定しました。


=COUNTIF($B$2:$B$8,D2&"*")


あとは、オートフィルで数式をコピーします。

算出することができました。


ポイントの条件ですが、ワイルドカードをつかうことで、対応することができます。

設定したCOUNTIF関数の数式を確認します。


最初の引数、「範囲」には、$B$2:$B$8と設定します。

オートフィルで数式をコピーするので、絶対参照を忘れずに設定します。


2番目の引数は、「検索条件」

最初の文字ということなので、「○○から始まる」という条件を設定できればいいわけです。

このような条件をつくるためには、ワイルドカードの「*」をつかうことで対応することができます。


D列に最初の文字が用意されているので、

D2。

そして「&(アンパサンド)」の文字結合を入力したあとに「”*”」と入力します。


「”(ダブルコーテーション)」でワイルドカードを囲むのを忘れないようにしましょう。


これで、先頭の文字と同じデータが何件あるか、手早く算出することができます。

12/28/2023

Excel。重複しているデータがわかるように、「重複」という文字を表示させたい【overlapping】

Excel。重複しているデータがわかるように、「重複」という文字を表示させたい

<IF+COUNTIF関数>

データに重複しているものがあれば、データタブの「重複の削除」をつかうと、データは削除されてしまいます。


また、条件付き書式の「セルの強調表示ルール」にある「重複する値」をつかうことで、塗りつぶしたりすることで、重複を確認することができます。


今回は、重複している場合、「重複」という文字を表示するには、どのようにしたらいいのかを紹介します。

=IF(COUNTIF($B$2:B2,B2)>=2,"重複","")

B列に担当者名が入力されています。

重複されていることがわかった時点で、C列に「重複」を表示したいわけです。


重複は2件以上という意味なので、全体の中で、そのデータが何件あるのかがわかれば、いいわけですね。


何件あるのかということですから、使用する関数は、COUNTIF関数をつかうと対応することができます。


C2にCOUNTIF関数をつかった数式を設定します。

=IF(COUNTIF($B$2:B2,B2)>=2,"重複","")


あとは、オートフィルで数式をコピーすれば、完成です。

重複しているデータには、重複という文字が表示されていることが確認できます。


では、数式の説明です。

最初のIF関数は、条件に合致したら、「重複」。

それ以外は「空白」を表示させるための関数です。


メインの関数がCOUNTIF関数です。

COUNTIF($B$2:B2,B2)>=2


最初の引数は、範囲です。

始点を絶対参照にすることで、オートフィルで数式をコピーすることで、対象範囲を拡張することができます。


2番目の引数は、検索条件です。

自分自身が何件あるのかを確認させます。


その結果が、2以上なら重複しているわけなので、重複と表示させることができるというわけです。

12/01/2023

Excel。データが重複していれば、手早く、行全体を塗りつぶししたい。【overlapping】

Excel。データが重複していれば、手早く、行全体を塗りつぶししたい。

<条件付き書式+COUNTIF関数>

ホームタブの条件付き書式の中にある「セルの強調表示ルール」の「重複する値」


これをつかうと、確かに、重複しているセルは、視覚的にわかるようになるのですが、行全体を対象にすることができません。


では、どのようにしたら、行全体で塗りつぶしすることができるのでしょうか。


次の表をつかって確認していきます。


A2:C8を範囲選択します。


ホームタブの条件付き書式にある「新しいルール」をクリックします。

新しい書式ルールダイアログボックスが表示されます。

条件付き書式+COUNTIF関数

「数式を使用して、書式設定するセルを決定」をクリックして、条件の数式を設定します。


=COUNTIF($C$2:$C$8,$C2)>1


あとは、書式ボタンをクリックして、書式を設定したら、OKボタンをクリックして完成です。


重複したデータがある場合、行全体を塗りつぶすことができました。


さて、設定した条件式を確認しておきましょう。

=COUNTIF($C$2:$C$8,$C2)>1


COUNTIF関数は、単一条件で件数を算出する関数ですね。


範囲は、C列の、$C$2:$C$8 と絶対参照しておきます。


そして、2番目の引数の「検索条件」ですが、セルの値が条件となります。

複数あれば2以上の数値を算出しますから、「>1」とすることで、重複しているかしていないかを判断することができるというわけです。


なお、「$C2」と列を固定した複合参照にすることで、行全体を対象にすることができます。


行全体を塗りつぶしたい時には、列固定の複合参照に設定します。

11/22/2023

Excel。手早く、数値を除いたデータの件数を求めるには、どうしたらいいの。【COUNT】

Excel。手早く、数値を除いたデータの件数を求めるには、どうしたらいいの。

<COUNTIF関数>

数値が入力されているセルを数えるには、数値の個数を算出することができる、COUNT関数をつかうことで、求めることができます。


では、その逆はどのようにしたらいいのでしょうか。

要するに、数値を除いたセルを数えたいわけです。


次の表で説明します


B列には、数値が入力されているセルと、文字列のセルが混ざっています。

B2:B6で数値以外の件数を算出したいわけです。


数値でないので、COUNT関数はつかえない。

COUNTA関数は、数値であろうが、文字であろうが、空白以外は、件数の対象になってしまいます。


数値以外という条件があるので、COUNTIF関数をつかうことで、対応することができそうです。


問題は、条件ですね。

「数値以外」。

実は、ワイルドカードをつかうことで対応することができるのです。


C8の数式は、

=COUNTIF(B2:B6,"*")

と設定すると、数値を除いた件数を算出することができました。


なぜ、「*」のワイルドカードをつかうことで、件数を算出することができたのかというと、たとえば「*山*」とすれば、山という文字が含まれているという条件になりますよね。


つまり、「*」ワイルドカードは、「文字が含まれている」という条件をつくることができるようになっています。

7/25/2023

Excel。同じカテゴリーごとに手早く連番を設定するにはどうしたらいいの【Serial number】

Excel。同じカテゴリーごとに手早く連番を設定するにはどうしたらいいの

<COUNTIF関数>

都道府県ごとにその中で、連番を設定するにはどのようにしたらいいのでしょうか。

連番

D列に都道府県が入力されています。

同じ都道府県内なら連番と設定したいわけです。


A列は、東京都で1~6。

埼玉県は1件しかないので、1で、次の神奈川県は2件あるので、2までというように、連番を設定したいわけです。


IF関数をつかうイメージがありますが、COUNTIF関数で、手早く設定することができます。


A2にCOUNTIF関数をつかった、数式を設定します。

=COUNTIF($D$2:D2,D2)


あとは、オートフィルで数式をコピーすれば、同じカテゴリー内で連番を設定することができました。


なんとなくIF関数をつかうイメージがしますが、COUNTIF関数で対応することができます。


設定した数式のポイントは、

COUNTIF関数の最初の引数「範囲」です。


「$D$2:D2」と始点を絶対参照にすることで、範囲が拡張することができます。


2番目の引数「検索条件」。

都道府県が変わっても、その行までの範囲で、件数を算出することができるというわけです。

そのため、カテゴリー内ごとに、まとまっていなくても、連番を設定することができます。


売上高を降順で並べ替えてみましたが、カテゴリー内の連番を設定することができました。

7/21/2023

Excel。平均以上の件数を手早く算出するには、どうしたらいいの【above average】

Excel。平均以上の件数を手早く算出するには、どうしたらいいの

<COUNTIF+AVERAGE関数>

平均以上の件数を算出したい場合ですが、平均値をAVERAGE関数で、一度算出したあと、平均値以上の数値が何件あるのかをCOUNTIF関数をつかって、算出するとなると、数式を2つ作らなければいけません。

平均以上の件数を算出したい

そこで、COUNTIF関数とAVERAGE関数を組み合わせてつかうことで、1つだけの数式で、平均値以上の件数を算出することができます。


D2に設定した数式は、

=COUNTIF(B2:B6,">="&AVERAGE(B2:B6))


これだけで、平均以上の件数を算出することができます。


では、数式を確認しておきましょう。


COUNTIF関数は、単一条件の件数を算出する関数です。


最初の引数は、「範囲」。

店舗の売上高なので、B2:B6と範囲選択します。


2つめの引数は、「検索条件」。

条件は、平均以上なので、AVERAGE関数をつかうわけですが、比較演算子との結合がポイントとなるわけです。


比較演算子とセル番地を組み合わせる時は、「&(アンパサンド)」をつかって結合させます。


比較演算子と数式を組み合わせる時も、「&(アンパサンド)」をつかって結合させるので、「">="&AVERAGE(B2:B6)」と引数を設定する必要があるわけです。


「">=AVERAGE(B2:B6)”」としてしまうと、「">=AVERAGE(B2:B6)”」という文字が検索条件になってしまいます。

12/11/2022

Excel。単一条件で件数を算出するならCOUNTIF関数を使います【COUNTIF】

Excel。単一条件で件数を算出するならCOUNTIF関数を使います

<関数辞典:COUNTIF関数>

COUNTIF関数

読み方: カウントイフ  

分類: 統計 

COUNTIF関数


COUNTIF(範囲,検索条件)

1つの条件を満たす件数を算出します

11/30/2022

Excel。並べ替えをしないでカテゴリー別の連番を、楽に設定するにはどうしたらいいの。【SORT】

Excel。並べ替えをしないでカテゴリー別の連番を、楽に設定するにはどうしたらいいの。

<TEXT関数+COUNTIF関数>

データの連番だけではなくて、カテゴリー別に連番。


つまり通し番号を設定するには、どのようにしたら効率的に設定することができるのでしょうか?


次の表をつかって確認していきましょう。


B列には所属するクラス名が入力されています。

このクラス名にクラス内での連番を付属させた、新しい管理コードを作りたいわけです。


C2に設定する数式は、

=B2&"-"&COUNTIF($B$2:B2,B2)


これで、クラス(カテゴリー別)での連番をつけた管理コードをつくることができます。


COUNTIF関数を使わない場合は、クラスごとに並べ替えをおこない、別の列にオートフィルなどをつかい連続データで連番をつくります。

そのあとに、クラス名と文字結合をするというのも悪くありませんが、この方法だと面倒ですね。


そこで、COUNTIF関数を使うことで、効率よくカテゴリー別で連番を設定することができるというわけです。


COUNTIF関数の部分を確認しておくと、

最初の引数の「範囲」には、$B$2:B2と設定しておきます。


これは、始点を絶対参照にすることで、「始点留め」の範囲選択を行うことができます。

「終点」を相対参照のままにしておくことで、オートフィルで範囲選択した時に、自動的に範囲選択を拡張することができます。


よく、累計を算出するときに使う方法ですね。


2番目の引数は、B2としておきます。

こちらも相対参照のままなので、オートフィルで数式をコピーすると参照先が変動してくれます。


範囲選択が拡張されていることで、その範囲内で登場する回数を算出することができる。

つまり連番を算出することができるというわけです。


あとは、「&(アンパサンド)」をつかって、文字結合を行えば、手早くカテゴリー別で連番を設定することができます。

11/17/2022

Excel。表内で重複しないデータ数を一発で算出する簡単な方法はないのかな。【overlapping】

Excel。表内で重複しないデータ数を一発で算出する簡単な方法はないのかな。

<SUM+COUNTIF関数>

帳票や表のデータが重複していない件数を算出するには、なかなか大変なケースもあります。


例えば、次の表。


B2:D4に入力されている地域名のうち、重複を除いた件数を、D6に算出したいわけです。


データタブの「重複削除」をつかって、残った件数を数えるというのもアリですが、今回のように、ひとつの列内にデータがあるわけではないので、「重複削除」をつかうことはできません。

また、別のところで、コピーして、ひとつの列をつくってから、「重複削除」を行う必要があります。


こうなると、作業は簡単でも、面倒になってきます。


また、Excel VBAでプログラム文をつくるというのも、ちょっと面倒です。


そこで、SUM+COUNTIF関数を組み合わせた数式で、算出することができます。


D6に設定する数式は、

=SUM(1/COUNTIF(B2:D4,B2:D4))


この数式だけで、重複を除いた件数を算出することができます。


別のセルをつかって説明します。


COUNTIF関数で範囲の中に、その文字が何件あるかを算出させています。


B9に、

=COUNTIF($B$2:$D$4,B2)

という数式を設定して、オートフィルで数式をコピーしています。


すると、ハワイは表内で3件あることが算出されるわけです。

ただ算出しただけでは、1より大きい値のデータが重複していることがわかるだけです。


そこで、この算出した値を、「1」で除算してみましょう。

 

B9の数式は、

=1/COUNTIF($B$2:$D$4,B2)

と修正して、オートフィルで数式をコピーしています。

この値全部を合算すれば、重複を除いた件数になります。


なぜ、「1」で除算したのかというと、例えば、2件あった場合、1÷2とすれば、「0.5」になるわけです。

2件ということは、別のセルで2と算出されたところも「0.5」となります。


0.5+0.5なので、1とすることができます。

4件あれば0.25+0.25+0.25+0.25 で、1とすることができる。


あとは、合算させればいいわけですね。


このような方法を使えば、数式だけで重複を除いた件数を算出することもできます。

10/07/2022

Excel。セル内に含まれている該当する文字があるのかをチェックするには【character】

Excel。セル内に含まれている該当する文字があるのかをチェックするには

<IF+COUNTIF関数>

次の表を用意しました。


やりたいことは、B2に入力されている氏名と同じものがD列にあれば、E列の参加者に「○」を入力したいわけです。


そもそも、B2の一つのセルに、複数のデータをいれちゃったのかなぁ~と思いますが、このようなケースは、結構現場で見るパターンの一つですね。


セル内に該当するデータが含まれているのか確認するのは、なかなか面倒です。


考え方として、D列の文字列が、B2に含まれているかどうかを判断することができればいいわけです。


D列の文字列と、B2の文字列は完全一致するわけはありません。

そこで、「含まれている」のかを確認するには、「*(ワイルドカード)」で、D列の文字列の前後を囲ってあげればいいわけです。


あとは、あるのか、ないのか、という判断になりますから、COUNTIF関数をつかってあげれば、いけそうですね。


では、E2に次の数式を設定します。

=IF(COUNTIF($B$2,"*"&D2&"*"),"○","")


あとは、オートフィルで数式をコピーすれば、完成です。


それでは、数式を確認しておきましょう。


IF関数内の、論理式で使用しているCOUNTIF関数ですが、ここで、氏名の文字列が含まれているかを判断させています。


COUNTIF関数の最初の引数である「範囲」には、

$B$2

と設定します。

オートフィルで数式をコピーするので、絶対参照の設定を忘れないようにします。


引数の2番目の「検索条件」には、

"*"&D2&"*"

と設定します。


「*(ワイルドカード)」は「”(ダブルコーテーション)」で囲ってあげる必要があります。


そして、D2のセル番地と「*(ワイルドカード)」を接続させるのに「&(アンパサンド)」が必要なので、注意してください。


こうすることで、セル内に該当する文字列があるのか、ないのかを判断することができます。

8/03/2022

Excel。分類ごとに連番を簡単に設定するにはどうしたらいいの【Classification】

Excel。分類ごとに連番を簡単に設定するにはどうしたらいいの

<TEXT+COUNTIF関数>

連番を設定したい時には、オートフィルの連続データをつかうことで、簡単に連番を振ることができます。


ただ、次のように、分類別の連番を設定するには、どのようにしたら、簡単に設定することができるのでしょうか?


やりたいことは、B列の地域コードを頭文字としたD列の新コードを作りたいわけです。


新コードは、地域コードごとに連番を設定しています。


地域コードごとにオートフィルターなどで抽出して、オートフィルターをつかい作成するという方法も悪くありませんが、地域コードのような抽出したい件数が多い場合は、単純作業の繰り返しが発生し、面倒な処理になってしまいます。


まして、Excel VBAでプログラム文をつくるような内容でもありません。


考え方として、「地域コードの中で、その地域コードは何回目の登場なのか」を算出することができれば、あとは、頭文字を表示させればいいわけです。


このような場合、登場するのが「COUNTIF関数」です。


まずは、COUNTIF関数をつかって、何回目の登場かを算出します。


E2に設定した数式は、

=COUNTIF($B$2:B2,B2)


最初の引数を、「$B$2:B2」と、始点を絶対参照にします。


終点を相対参照にすることで、オートフィルで数式をコピーすると、自動的に範囲選択を拡張することができます。

累計を算出する方法を応用した形ですね。


こうすることで、そこまでの範囲で、検索条件の「地域コード」が何回登場したのかを算出することができます。


あとは、文字結合の「&(アンパサンド)」とTEXT関数を組み合わせれば、完成ですね。


今回は、説明のためにE列に一度算出した値をしようしていますが、次のように数式をD2に設定することで、複数に分けず、一発で算出することもできます。


=B2&"-"&TEXT(COUNTIF($B$2:B2,B2),"000")


可読性も悪くないので、TEXT関数とCOUNTIF関数のネストで算出するほうが、よりいいかもしれませんね。

7/25/2022

Excel。重複しているデータの行全体を手早く塗りつぶしてわかりやすくしたい【overlapping】

Excel。重複しているデータの行全体を手早く塗りつぶしてわかりやすくしたい

<条件付き書式+COUNTIF関数>

次の表のように、B列の氏名の列のデータ内で、重複しているデータがあったら、見た目でわかりやすくしたいわけです。

また、そのセルだけでなく、行全体を塗りつぶしたい場合、どのようにしたらいいのでしょうか?


重複していたら、塗りつぶしたいので、つかうのは、「条件付き書式」。

そして、用意されている条件では対応できないので、数式で条件を作る必要があります。


では、A2:C11を範囲選択して、ホームタブの条件付き書式にある「新しいルール」をクリックします。

 


「新しい書式ルール」ダイアログボックスが表示されます。


ルールの種類は、「数式を使用して、書式設定するセルを決定」をクリックします。


ルールの内容のボックスには、重複を判定するための数式を設定します。

=COUNTIF($B$2:$B$11,$B2)>=2


あとは、書式ボタンをクリックして、塗りつぶしたい書式を設定したら、条件設定が完成します。

最後に、OKボタンをクリックしましょう。


これで、重複したデータに該当したデータの行全体を塗りつぶしに設定することができました。


では、設定したCOUNTIF関数の説明をします。

COUNTIF関数をつかうのは、B2が範囲の中で、2件以上あれば、重複ということがわかるからです。

 

D2に、

=COUNTIF($B$2:$B$11,$B2)>=2

を設定して、オートフィルで数式をコピーすると、「TRUE」と「FALSE」を算出してくれます。この「TRUE」が重複していることを合わせしています。


ポイントは2つ。

最初の引数は、範囲なので、「$B$2:$B$11」。

絶対参照を忘れないようにします。


2つ目の引数は、検索条件で、B2。

行全体を塗りつぶしたいので、「$B2」と列番号を固定する必要があります。


条件付き書式の条件に様々な数式を応用して設定することで、わかりやすい資料をつくることができますので、色々試してみるのはいかがでしょうか。

7/14/2022

Excel。セル内の複数の文字列から該当の文字列だけを集計するには、どうしたらいい

Excel。セル内の複数の文字列から該当の文字列だけを集計するには、どうしたらいい

<COUNTIF関数+ワイルドカード>

データを読み込んでみたら、データがセルごとに分かれてなく、セル内にまとまっていると、不便なことが結構発生します。


例えば、次の表。


B列の受講希望に科目が入力されています。


受講科目ごとに何件あるのか集計したいのですが、セル内に「Word」や「Excel」といった科目名が、列ごとに区切らえれず、まとめて入力されています。


そのため、集計することができません。


では、どのようにしたら、手早く科目名ごとに集計することができるのでしょうか


受験希望欄に「Word」だったらという条件で件数を算出したいので、使用する関数は「COUNTIF関数」をつかえば、集計することはできます。


ここで、考えないといけないのが、どのような条件を設定すればいいのでしょうか。


そこで、次のような条件はどうでしょうか。

「セル内にWordという文字が含まれている」


この条件ならば、件数を算出することができそうです。

では、どのようにしたら、「含まれる」という条件を設定することができるのでしょうか


「含まれる」を表現するには「ワイルドカード」をつかうことで、対応することができます。


E2に設定した数式を確認していきます。

=COUNTIF($B$2:$B$6,"*"&D2&"*")

設定後、オートフィルで数式をコピーします。


たった、これだけなのですが、COUNTIF関数でワイルドカードを使用するということに気が付かないと、算出するのに時間がかかってしまいます。


最後に、COUNTIF関数の引数の内容を確認しておきましょう。

最初の引数は、範囲。


今回は、B列が対象なので「$B$2:$B$6」。


範囲選択ですが、オートフィルで数式をコピーするので、絶対参照を設定することも忘れないようにします。


2つ目の引数は、検索条件。

「D列の文字を含む」というのが条件なので、D2を「*(アスタリスク)」で囲います。


「*(アスタリスク)」は、「”(ダブルコーテーション)」をつかって挟みます。

さらに文字結合をする「&(アンパサンド)」をつかい、条件が完成します。


ワイルドカードをつかうことで、条件の幅が広がります。


ただ、B列のように、セル内にまとめて入力するよりも、別々の列にするほうが、Excelの様々な機能を使いやすくなります。


表を、データベース化することも、選択肢の中にいれておくのもいいかもしれませんね。