Excel関数 逆引き集 | パス文字列生成 → TEXTJOIN

Excel
スポンサーリンク

概要

フォルダ名やファイル名の一覧から、

C:\Project\2026\報告書\summary.xlsx

/home/user/project/2026/report/summary.txt

のような「パス文字列」を自動生成したくなる場面はよくあります。

Excelでは、パスもURLと同じく「ただの文字列」です。
そのため、TEXTJOIN と文字列結合(&)を組み合わせるだけで、
フォルダ階層を「\」や「/」でつないだパス文字列をきれいに作れます。

ここでは、Windowsパス・UNIX風パスの両方を、初心者向けにかみ砕いて解説します。


基本の考え方(パスは「区切り文字付きの連結」)

パス文字列は、ざっくり言うと

ルート(ドライブや基点)
フォルダ1
フォルダ2
ファイル名

を、区切り文字(\/)で順番に連結したものです。

例えば Windows なら、

C:
Project
2026
報告書
summary.xlsx

これらを \ でつなぐと

C:\Project\2026\報告書\summary.xlsx

になります。

この「複数の要素を、同じ区切り文字でつなぐ」という処理にピッタリなのが TEXTJOIN です。


Windowsパスを TEXTJOIN で生成する

1行の値からパスを組み立てる基本パターン

次のようにセルを使うとします。

A2:C: (ドライブ)
B2:Project (フォルダ1)
C2:2026 (フォルダ2)
D2:報告書 (フォルダ3)
E2:summary.xlsx(ファイル名)

これを

C:\Project\2026\報告書\summary.xlsx

というパス文字列にしたい場合、
F2 に次の式を書きます。

=TEXTJOIN("\", TRUE, A2:E2)

区切り文字には "\" を指定します。
空白を無視する引数は TRUE にしておくと、途中の空欄セルがあっても余計な \ が増えません。

結果として、A2:E2 の要素が \ 区切りで結合され、1本のパスになります。


ルート部分だけ固定で使う場合

もしルート(C:\Project など)を固定にして、
その下の階層だけをセルから作りたい場合は、固定文字列+TEXTJOIN の形にします。

A2:2026
B2:報告書
C2:summary.xlsx

この3つを C:\Project の下にぶら下げるパスにしたいなら、D2 に次のように書きます。

="C:\Project\" & TEXTJOIN("\", TRUE, A2:C2)

TEXTJOIN の部分だけを「可変のフォルダ/ファイル部分」として扱い、
その前に固定のルート文字列を & でつなぐイメージです。


UNIX/Linux風パス(/ 区切り)を生成する

UNIXやLinux、Macのパス、あるいはURLのパス部分などは / 区切りになります。

A2:home
B2:user
C2:project
D2:2026
E2:report.txt

これを

/home/user/project/2026/report.txt

にしたい場合、F2 の式はこうです。

="/" & TEXTJOIN("/", TRUE, A2:E2)

先頭の / だけ固定文字列で付け、
後続の階層は TEXTJOIN(“/”, TRUE, A2:E2) でつないでいます。

もし A2 にすでに home の代わりに /home と書いてあるなら、
単純に

=TEXTJOIN("/", TRUE, A2:E2)

でも構いません。


階層数が可変の場合の扱い(空白セルを飛ばす)

現場では、「階層の深さ」が行によって違う表もよくあります。

例として、A列からF列までに階層を入れ、足りない部分は空欄にしているケースを考えます。

行2:
A2:C: / B2:Project / C2:2026 / D2:報告書 / E2:summary.xlsx / F2:(空白)

行3:
A3:C: / B3:Project / C3:temp / D3:(空白) / E3:(空白) / F3:(空白)

このとき、すべての行で

C:\Project\2026\報告書\summary.xlsx
C:\Project\temp

というように、余計な \ を出さずにパスを作りたい場合、
共通して次の式を使えばOKです。

行2, 行3ともに G列に次の式:

=TEXTJOIN("\", TRUE, A2:F2)

TRUE を指定しているため、空白セルは自動的にスキップされ、
どの行でも「存在する階層だけをつないだパス」が得られます。

階層数がバラバラでも同じ式をコピーできるのが、TEXTJOIN の大きなメリットです。


パス文字列生成における注意点とコツ

パス文字列を生成するときのポイントを整理します。

パスは「見た目は数式っぽいが中身は文字列」です。
そのため、セルの表示形式に依存しません。数式で作った文字列をそのまま他ツールにコピーできます。

Windowsパスの区切りは通常 \ ですが、Excelの数式の中ではバックスラッシュをそのまま "\" と書けばOKです。
"\\\\" のようなエスケープは不要です)

空白セルをどのように扱うかを意識することが重要です。
「途中の空欄階層も“空のフォルダ名”として残したい」場合は TRUE ではなく FALSE を使いますが、実務では多くの場合 TRUE(空白無視)のほうが自然です。

ファイル名の拡張子を別セルに分けておきたい場合は、
ファイル名 & "." & 拡張子 として TEXTJOIN の中に組み込むこともできます。


問題1

A2:E2 に次のような値が入っています。

A2:C:
B2:Project
C2:2026
D2:報告書
E2:summary.xlsx

これらを C:\Project\2026\報告書\summary.xlsx というパス文字列にしたいです。
TEXTJOIN を使い、F2 に書く式を答えてください。

=TEXTJOIN("\",TRUE,A2:E2)

問題2

A2:C2 に

A2:2026
B2:報告書
C2:summary.xlsx

が入っています。
これらを C:\Project\2026\報告書\summary.xlsx というパスにしたいです。
ルート C:\Project\ は固定文字列とし、D2 に書く式を答えてください。

="C:\Project\" & TEXTJOIN("\",TRUE,A2:C2)

問題3

A2:E2 に

A2:home
B2:user
C2:project
D2:2026
E2:report.txt

が入っています。
これを /home/user/project/2026/report.txt というUNIX風パスにしたいです。
F2 に書く式を答えてください。

="/" & TEXTJOIN("/",TRUE,A2:E2)

問題4

A2:F2 に階層が入り、存在しない階層は空白の表があります。
空白セルを飛ばして、A2:F2 の内容から Windowsパスを生成したいです。
G2 に書く式を答えてください(区切りは \ とし、空白セルは無視します)。

=TEXTJOIN("\",TRUE,A2:F2)

問題5

A2:D2 にそれぞれ

A2:Project
B2:2026
C2:報告書
D2:summary

が入っています。
拡張子 .xlsx を付けて、D:\Data\Project\2026\報告書\summary.xlsx というパスを E2 に生成したいです。
TEXTJOIN と & を使って式を書いてください。

="D:\Data\" & TEXTJOIN("\",TRUE,A2:C2) & "\" & D2 & ".xlsx"

パス文字列生成の本質は、

=TEXTJOIN("\", TRUE, 階層のセル範囲)

に、必要なら前後の固定文字列(ルートや拡張子)を & で足していくことです。
一度この型に慣れてしまえば、フォルダ構成表から大量のパスを自動生成するのも、怖くなくなります。

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