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
これをスラッシュ /
で区切ると、次のようなリストになります:
インデックス | 値 |
---|---|
1 | t_zaiko_seihin_draft_Files_ |
2 | 6663b4cd.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
)
※全体の桁数とプレフィックスの桁数を求め、右から該当桁数分を抽出する。
応用ヒント
こんなときにおすすめ
INDEX()
関数は、文字列の整形や抽出に非常に役立ちます。
特にファイルパスのようなパターン化された文字列では、SPLIT()
と組み合わせることでより自由度の高い文字列操作を行うことができます。