File型のURLからファイル名だけを取り出す方法【INDEX活用】

Tips
AppSheetTips関数

AppSheetで画像やPDFなどのファイルをアップロードすると、File型のカラムには次のようなファイルパス(URL)が保存されます。

t_zaiko_seihin_draft_Files_/6663b4cd.fileName.053946.pdf

この中から、ファイル名だけ(例:fileName.053946.pdf)を取り出したいというケースは多くあります。
この記事では INDEX()SPLIT() を使った実用的な方法をご紹介します。


ファイル名を取り出す基本式

ファイル型のカラム [ファイル] に以下のような値が入っているとします:

t_zaiko_seihin_draft_Files_/6663b4cd.fileName.053946.pdf

これをスラッシュ / で区切ると、次のようなリストになります:

インデックス
1t_zaiko_seihin_draft_Files_
26663b4cd.fileName.053946.pdf

ファイル名部分は2番目(インデックス2)にあるため、以下の式で取り出せます:

INDEX(SPLIT([ファイル], "/"), 2)

結果 → 6663b4cd.fileName.053946.pdf


ファイル名からプレフィックス(ID)を除去したい場合

t_zaiko_seihin_draft_Files_/6663b4cd.fileName.053946.pdf

これを 実際のファイル名(fileName.053946.pdf)だけにしたい場合は、ドット.で再度分割して2番目以降を組み直す必要があります。

INDEX(SPLIT([ファイル], "."), 2) & "." & 
INDEX(SPLIT([ファイル], "."), 3) & "." &
INDEX(SPLIT([ファイル], "."), 4)
CONCATENATE(
INDEX(SPLIT([ファイル], "."), 2) , "." ,
INDEX(SPLIT([ファイル], "."), 3) , "." ,
INDEX(SPLIT([ファイル], "."), 4)
)


こんな方法もあります。

RIGHT([ファイル],  LEN([ファイル]) - 
  LEN(INDEX(SPLIT([ファイル], "."),1)) - 1
)

※全体の桁数とプレフィックスの桁数を求め、右から該当桁数分を抽出する。


応用ヒント

  • SPLIT() の区切り文字は /. などファイル形式に応じて変更可能
  • 複数レベルで INDEX() を入れ子にすれば、階層データも取り扱える
  • LINKTOFORM() に値を渡すとき、ファイル名だけを引き継ぐことでユーザーにとって分かりやすい表示にできる

こんなときにおすすめ

  • ファイル名でログ管理をしたい
  • ファイル一覧にURLではなくファイル名を表示したい
  • ファイル名をリンクに変換したいときの補助処理

INDEX() 関数は、文字列の整形や抽出に非常に役立ちます。
特にファイルパスのようなパターン化された文字列では、SPLIT() と組み合わせることでより自由度の高い文字列操作を行うことができます。