スプレッドシートで文字数ではなく『単語』の数をカウントする方法、考えてみた。
わが社は、HTMLが分からない人向けや、記事を沢山集めるために、
スプレッドシートを使うことが多い。
スプレッドシートに文章を書いてもらって、関数でテンプレ化させて、HTMLを組み込んだうえで記事に落とし込む。
んで、その時に、
『この単語、記事内に何個入っているのか。』
って調べる必要性が出てきた。
※最近のSEO的にキーワード数ってあんまり関係なくなったらしいね。
関係なくても勝手に多くなってたからまぁいいんだけど。そのあたりよくわかってない←
やりたいこと
スプレッドシート内の、4500文字の文字の中から、特定の単語が何回出現しているかカウントしたい
スプレッドシート内の単語数は数えられるのか
とりあえずググりました。
スプレッドシート 単語 カウント
スプレッドシート 単語 個数
スプレッドシート 単語 数
スプレッドシート 文字中 単語
とかとか、で出てきたのが以下の関数
=LEN(REGEXREPLACE(A1,"[^あ]",""))
指定のセルの中に『あ』が何個あるのか数える。
=LEN(REGEXREPLACE(A1,"[^か-ご]",""))
指定のセルの中に『かきくけこがぎぐげご』が何個あるのか数える
違うそうじゃない!!!!!!!
私が知りたいのは『単語の数』であって、文字の数じゃない!!
ていうか、この関数使う事あるの?何に使用するの?むしろ使用例を教えてほしい。
次!!!!!
=LEN(参照)-LEN(SUBSTITUTE(参照,"特定文字列",""))
まず対象セルの文字数を数えて、そこから、特定の文字列を計測して数字を出す方法。
これだ!!!ってなったんですが、こいつが地味に使えない。
・単語ではなく【字】をcountするつまり
【特定文字列】の文字数分countが増える
ので例えば、【特定文字列】が5回出る文章だと25って数字になる。こいつは使えない。
理由
そもそもこの関数は日本語に対応していない。
日本語の単語って、漢字の組み合わせ?なので、こういうのが上手くいかないらしい。知らんけど。
じゃあどうすればいいの??
結局ググって出てきたものに参考になりそうなものは全くなかった。ので、強行突破してみた。
私の考えたセル内文章の単語数カウント方法
まずは、単語を別の関数に置き換えてやる。
単語が反応しないなら、反応する単語にしてあげればいいじゃない!と言うことで、
マシュマロが好きなのはマシュマロがマシュマロだからです。
今目の前にマシュマロがあった。
何回マシュマロが出現したか計測します。
こいつをまず、
=SUBSTITUTE(C7,"マシュマロ","A")
単語を置換する関数【=SUBSTITUTE】で文中に存在しない『1文字』の単語にしてやる。
すると、
こうなる。
Aが好きなのはAがAだからです。
ここまで来たら、先ほど見つけた、文字の数を数える関数
=LEN(参照)-LEN(SUBSTITUTE(参照,"特定文字列",""))
で、計測してやればOK
これで、
こうなる。
A=マシュマロ なので、
マシュマロが好きなのはマシュマロがマシュマロだからです。
この文章中には3回マシュマロがあるんだ。ってことが分かる。
みたいな感じですね。
本当はちゃんとした関数があるのかもしれないけど、スプレッド内の単語の数を数えたい!!!今すぐ!!!って場合はこんな組み合わせでやってみるのもいかがでしょうか?ってお話でした。
この2つの関数の注意点
基本的にはこの関数で出来ると思ってます。が、一つ注意。
例えば、
チョコマシュマロが好きなのはチョコマシュマロがマシュマロだからです。
みたいな、「チョコ」と「マシュマロ」が組み合わさったとき、
これもさっきのやり方でやると
チョコマシュマロ と マシュマロ それぞれのカウントができないのは分かりますよね(;'∀')
チョコマシュマロと、マシュマロ別々にcountとって、マイナスさせるとかなんかほんと数学的な話になってくるので
まじでどうしてもやりたい時だけ使うのがいいのかなって思います。
ネット上には、単語数を数える方法ではなく、文字数を数える方法しか出てなかったので今回こんな感じでまとめてみました。
たぶん俺は何度か使う予定がある。
ていうかほんと、文章中の「あ」の数とか、それ何に使うん…?
もっと簡単にやる関数存在するよ!!!って方がいればご教授いただきたいです。っていうか、ネットで上位表示する記事書いてください。
いらん情報ばっか上がっててほんとブチ切れそう。
同じ関数紹介してる記事10記事中8記事とかいります???ワケガワカラナイヨ。
そんな感じ。
仕事に戻ります。
この記事が気に入ったらサポートをしてみませんか?