概要
フォルダ名やファイル名の一覧から、
C:\Project\2026\報告書\summary.xlsx
や/home/user/project/2026/report/summary.txt
のような「パス文字列」を自動生成したくなる場面はよくあります。
Excelでは、パスもURLと同じく「ただの文字列」です。
そのため、TEXTJOIN と文字列結合(&)を組み合わせるだけで、
フォルダ階層を「\」や「/」でつないだパス文字列をきれいに作れます。
ここでは、Windowsパス・UNIX風パスの両方を、初心者向けにかみ砕いて解説します。
基本の考え方(パスは「区切り文字付きの連結」)
パス文字列は、ざっくり言うと
ルート(ドライブや基点)
フォルダ1
フォルダ2
ファイル名
を、区切り文字(\ か /)で順番に連結したものです。
例えば Windows なら、
C:Project2026報告書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.xlsxC:\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, 階層のセル範囲)
に、必要なら前後の固定文字列(ルートや拡張子)を & で足していくことです。
一度この型に慣れてしまえば、フォルダ構成表から大量のパスを自動生成するのも、怖くなくなります。
