こんにちは、Forkusです!
今回はURL中のキーワードに応じて、著者・記事カテゴリを左横コラムに出力する方法をご紹介します。

まずは、以下の表を見てみましょう。左側にURLが並んでいますね。

URLには、その記事を示す独自のキーワードが入っていることがあります。
特に、ブログの書き手が複数人いる場合だと、見分けをつけるために何かしらの印をいれていることが多いです。
本例では、平川さんは”hint”, 一方トムさんは”strategy”というキーワードをいれていますね。
しかし、扱うURLの量が多くなると、一つづつ見分けるのは大変です。

URLはわかっているのに、判別できるキーワードも知っているのに!
言葉では簡単に説明できても、スプレッドシートに再現できない・・
もどかしい気持ちになりますよね。
実はこれ、スプレッドシートの関数を使えば一瞬で解決できます。
皆さんは、こんな時どう考えますか。
と考えたあなた、そう!その通りなんです!
よし、さっそくIF関数とSEARCH関数を組み合わせよう。

IF関数とSEARCH関数ってどっちから先に使うんだよ
と考えている間に、手作業で。
これがスポット的な作業ならいいんですが、毎月データ集計で膨大なURLをさばくとなると大変です・・
目次
1. SEARCH関数を使ってURL上のキーワードを認識する
1.1. SEARCH関数のおさらい
まずは、個々の関数に沿って、どういう動きをするのかを探ってみましょう。
B2のセルに下記のSEARCH関数を入力します。
A2から”hint”を探してくる。というイメージです。

なんだ・・こいつサーチ関数のくせに全然サーチしてねえじゃねえか!!
と、おもったあなた。一度深呼吸です(過去のわたし)
対象となるURL(A2セル)の34番目の文字に、hintがありました!という意味です。
つまりは、URLの中の34番目以降に、そのキーワードは「あるよ!」という一番知りたいことを回りくどく教えてくれているわけですね。

しかし、何はともあれあるとわかってよかった・・
と一息つくのは少し早いです。これはあくまで我々の話。
次はスプレッドシートさんに、34とは「あるよ!」(=正 or TRUE)の意味なんだよ。
とわかってもらわなければいけません・・
34が正(しい)つまりTRUEであると分かってもらう・・!?
34は数字ですか?→ はい(確信) という質問ならこの答えになりますよね。
以下では、〜は数字である、=TRUEと判別できる関数を使用します。
2. ISNUMBER関数を使って、対象となる○○が数字であるか判別する
2.1. ISNUMBER関数のおさらい
ISNUMBER関数さんは、その名の通り、~IS ”NUMBER(数字)”を表す関数です。何ともわかりやすい・・(これは)数字です!関数。
さっそく、先程つかったSEARCH関数と組み合わせてみましょう。
以下の関数をB2セルに入力します。

SEARCH(“hint”, A2)= 34なので、上記のようにTUREが表示されました。
3. なんでわざわざTRUEにさせたの?→ IF関数を使うため
3.1. IF関数のおさらい
IF関数の使い方をまとめてみました。
・今回は① = IF(ISNUMBER(SEARCH(“hint”, A2))
・①がTRUEの場合は②に任意で記入した内容がセルに反映されます。
・①がFALSEの場合は③(未入力でも自動的にFALSE表示)
以下では上の例をそのまま使って、IF関数を試してみましょう。

34は数字なので、”正しい時に(TRUE)表記する”がB2セルに反映されています。
次に、今回の目標である「表示させたい筆者・カテゴリ名」を代わりに入力しましょう。

無事に表示されました!(目標は半分達成です)
一方、今回はhintのみをSEARCH関数で検索したので、strategyが入っているURLでは当然FALSEが表示されてしまいます・・

3.2. IF関数は足し算!IF(もし)をくっつけるだけで繰り返し試せる!
皆さん安心してください、IF関数は重ねて使用できます。
TRUEの値を優先して出すため、hintに当てはまらなかったら次はstrategy….といった具合で繰り返して、それでもダメな場合はFALSEを吐き出します。
以下のように、コピペしたIF関数のhintをstrategyに変更してそのままくっつけちゃいましょう!

以下の関数を参考にしてください↓(IF関数の数に応じて閉じかっこが増える点に注意しましょう。)
=IF(ISNUMBER(SEARCH("hint",A2)), "平川 正「英語のヒント」", IF(ISNUMBER(SEARCH("strategy",A2)), "トム・ハリー「English strategy」"))
無事に完成しました、おつかれさまです!
対応するキーワードが増えれば、このようにIF関数以下をコピペして、あとはくっつけていくだけです。閉じかっこの数だけ注意しましょう。