🐳

Excelの TEXTBEFORE / TEXTAFTER でファイルパスからパスやファイル名を抽出する

2024/12/31に公開

概要

例えば、 /aaa/bbb/ccc/ddd.txt のような文字列から /aaa/bbb/cccddd.txt をエクセルで簡単に抽出するやり方です。
検索すると RIGHT + LEN + SEARCH のような説明が多いため、関数名を忘れると探すのが面倒なので備忘録も兼ねて残しておきます。

環境

Office for Mac

使い方

ファイル名を抽出する - TEXTAFTER

TEXTAFTER_filename.png

=TEXTAFTER(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])

instance_numを負値にすることでテキスト末尾からの検索になります。
TEXTAFTERなのでdelimiterで指定した文字を最初に見つけた位置から以降の文字列を抽出します。

パス名を抽出する - TEXTBEFORE

TEXTBEFORE_filepath.png

TEXTBEFOREなのでdelimiterで指定した文字を最初に見つけた位置から以前の文字列を抽出します。

簡単にまとめ

TEXTBEFORE / TEXTAFTER の方が分かりやすい指定で行うことができるのでおすすめです。
ファイルパスだけでなく、 aaa.bbb.ccc.ddd のようなJavaのパッケージ名からクラス名だけを抽出したい時とかにも使えます。
ただし、古いエクセルでは存在しない関数だと思うので、互換性には注意してください。

参考

https://support.microsoft.com/ja-jp/office/textbefore-関数-d099c28a-dba8-448e-ac6c-f086d0fa1b29

https://support.microsoft.com/ja-jp/office/textafter-関数-c8db2546-5b51-416a-9690-c7e6722e90b4

Discussion