Excel関数 逆引き集 | URLを生成 → TEXTJOIN

Excel
スポンサーリンク

概要

Excelで「URLを自動生成したい」場面、かなり多いです。

  • ベースURL + パラメータを組み合わせて検索URLを作りたい
  • IDごとに https://example.com/item?id=◯◯ を大量生成したい
  • A列・B列・C列の値を、パラメータとしてくっつけたURLにしたい

こういうときに便利なのが TEXTJOIN + 文字列結合 (&) です。
「固定部分」と「セルの値」をただの“文字列”として組み立てる、というイメージを掴めば、URL生成は一気にラクになります。


基本の考え方(URLはただの文字列)

URLも、Excelから見れば「1本の文字列」にすぎません。

たとえば、

https://example.com/item?id=123&color=red

これは Excel 的には、

="https://example.com/item?id=123&color=red"

と書けばそのまま作れる、単なる“文字列”です。

これを、
固定の部分 "https://example.com/item?id="
変わる部分(セルの値) A2
もう一つのパラメータ "&color=" & B2

のように分解して、& でつなげていくのが基本です。

TEXTJOIN を使うのは、
「複数のパラメータをきれいに区切り文字でつなぎたい」
ときにとても便利です。


基本パターン1:ID から商品ページURLを作る

最もシンプルな例からいきます。

A列に「商品ID」が入っているとします。

A2:123
A3:456
A4:789

商品ページURLが、
https://example.com/item?id=(ID) というルールだとすると、
B2 に次のように書きます。

="https://example.com/item?id=" & A2

A2 が 123 なら結果は

https://example.com/item?id=123

これを下までコピーすれば、IDごとのURLを一気に生成できます。

このレベルなら TEXTJOIN はまだ不要で、& だけで十分です。
「URLのベース + 変数部分(セル参照)」という感覚に慣れましょう。


基本パターン2:2つ以上のパラメータをつなぐ

次に、パラメータが複数あるパターンです。

例えば、「商品ID」と「色」をパラメータに持つ検索URLを作りたいとします。

A2:123(ID)
B2:red(色)

URLの形はこうだとします。

https://example.com/search?id=123&color=red

C2 に書く式はこうなります。

="https://example.com/search?id=" & A2 & "&color=" & B2

動きのイメージは

  • "https://example.com/search?id="
  • A2(123)
  • "&color="
  • B2(red)

を順番に & でつないでいるだけです。

この時点ではまだ TEXTJOIN なしでもOKですが、
パラメータが増えてきたり、「区切り文字を意識してつなぎたい」ときに TEXTJOIN が効いてきます。


TEXTJOIN を使う理由(複数パラメータの管理)

パラメータが 3つ、4つと増えると、

="...?id=" & A2 & "&color=" & B2 & "&size=" & C2 & "&sort=" & D2

のように、& と "&...=" が増えて読みにくくなってきます。

そこで、パラメータの部分だけを TEXTJOIN でまとめる、という設計にするとスッキリします。

考え方はこうです。

  1. ベースURLはそのまま文字列
  2. id=◯◯color=◯◯ などの「key=value」だけを並べて TEXTJOIN(“&”, …) で結合
  3. ベースURL + “?” + TEXTJOIN の結果 という形にする

応用パターン1:TEXTJOINでクエリパラメータを結合

A2:ID
B2:色
C2:サイズ

とします。
URLの形は

https://example.com/search?id=ID&color=色&size=サイズ

にしたい。

まず、各パラメータの「key=value」文字列を頭の中で整理します。

id パラメータ
"id=" & A2

color パラメータ
"color=" & B2

size パラメータ
"size=" & C2

これを TEXTJOIN で "&" 区切りでまとめます。

=TEXTJOIN("&", TRUE,
          "id=" & A2,
          "color=" & B2,
          "size=" & C2)

これだけだと結果は

id=123&color=red&size=M

のような文字列になります。
これをベースURLにくっつければ完成です。

="https://example.com/search?" &
TEXTJOIN("&", TRUE,
         "id=" & A2,
         "color=" & B2,
         "size=" & C2)

この式の良いところは、パラメータが増えたとき、

"sort=" & D2

などを TEXTJOIN の中に1行追加するだけで済むところです。


応用パターン2:一部パラメータが空欄のときに飛ばしたい

TEXTJOIN の第2引数「空白を無視するか」が効いてくるのはここです。

例えば、

A2:123(id)
B2:””(色:未指定)
C2:M(サイズ)

というとき、色が空欄なら color= を付けたくない、という場合があります。

そんなときは、TEXTJOIN の実引数の中で IF を使います。

="https://example.com/search?" &
TEXTJOIN("&", TRUE,
         "id=" & A2,
         IF(B2<>"","color=" & B2,""),
         "size=" & C2)

ポイントは

  • B2 が空でなければ "color=" & B2 を渡す
  • B2 が空なら ""(空文字)を渡す
  • TEXTJOIN の第2引数に TRUE を指定しているので、空文字は無視される

結果として、

B2 に値があるとき

id=123&color=red&size=M

B2 が空欄のとき

id=123&size=M

となり、余計な &color= を付けずにすみます。


応用パターン3:複数行のURLを一気にまとめて出力する

TEXTJOIN は「縦の範囲」をまとめて1本の文字列にするのも得意です。

例えば、D2:D5 に

D2:https://example.com/item?id=1
D3:https://example.com/item?id=2
D4:https://example.com/item?id=3
D5:https://example.com/item?id=4

というURLが並んでいるとします。

これを改行区切りで1セルにまとめて、

https://example.com/item?id=1

Example Domain
Example Domain
Example Domain

のような形でコピーしたいときは、E2 にこう書きます。

=TEXTJOIN(CHAR(10), TRUE, D2:D5)

CHAR(10) は「改行コード」です。
セルの書式で「折り返して全体を表示する」にチェックを入れれば、1セルに複数行のURL一覧が作れます。


URL生成の“型”まとめ

1件分を単純に作る型(IDだけ)

="https://example.com/item?id=" & A2

複数パラメータを TEXTJOIN でまとめる型

="https://example.com/search?" &
TEXTJOIN("&", TRUE,
         "id=" & A2,
         "color=" & B2,
         "size=" & C2)

一部パラメータを省略可能にしたい型

="https://example.com/search?" &
TEXTJOIN("&", TRUE,
         "id=" & A2,
         IF(B2<>"","color=" & B2,""),
         "size=" & C2)

この3つの型を押さえておけば、
ほとんどの「ExcelからURLを量産したい」場面に対応できます。


問題1

A2 に商品IDが入っています。
https://example.com/item?id=◯◯ というURLを B2 に生成したいです。
ID部分に A2 を使った式を書いてください。

="https://example.com/item?id=" & A2

問題2

A2 に ID、B2 に 色(color)が入っています。
https://example.com/search?id=ID&color=色 というURLを C2 で生成したいです。
TEXTJOIN は使わず、& だけで作ってください。

="https://example.com/search?id=" & A2 & "&color=" & B2

問題3

A2 に ID、B2 に 色、C2 に サイズ が入っています。
https://example.com/search?id=ID&color=色&size=サイズ というURLを D2 で生成したいです。
パラメータ部分(id=…, color=…, size=…)を TEXTJOIN で結合する式を書いてください。

="https://example.com/search?" &
TEXTJOIN("&",TRUE,
         "id=" & A2,
         "color=" & B2,
         "size=" & C2)

問題4

問題3と同じく A2 に ID、B2 に 色、C2 に サイズ が入っています。
ただし、B2(色)が空欄のときは color= パラメータを付けたくありません。

id=size= は必須、color= は B2 が空でないときだけ含めるように、
TEXTJOIN と IF を組み合わせた式を書いてください。

="https://example.com/search?" &
TEXTJOIN("&",TRUE,
         "id=" & A2,
         IF(B2<>"","color=" & B2,""),
         "size=" & C2)

問題5

D2:D5 に4つのURLが縦に並んでいます。
これらを 1 つのセルに改行区切りで結合したいです(コピーして他のツールに貼りたいイメージ)。
E2 に書く TEXTJOIN の式を書いてください。
(改行コードには CHAR(10) を使ってください)

=TEXTJOIN(CHAR(10),TRUE,D2:D5)

URL生成は、一度「URL = ただの文字列」として割り切れれば、
TEXTJOIN と & を組み合わせて、
かなり“プログラミングっぽいこと”をExcelだけでこなせるようになります。
まずは、今日の3つの型をそのまま真似して、自分のURLに置き換えてみてください。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました