概要
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 でまとめる、という設計にするとスッキリします。
考え方はこうです。
- ベースURLはそのまま文字列
id=◯◯やcolor=◯◯などの「key=value」だけを並べて TEXTJOIN(“&”, …) で結合- ベース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に置き換えてみてください。
