(Gスプレッドシート)SPLIT関数で分割した最後の項目を取得する

 Googleスプレッドシートで、文字列をSPLIT関数で分割したときの最後の項目(要素)の取得方法についてです。

  • 「=INDEX(SPLIT(文字列,区切り文字),COLUMNS(SPLIT(文字列,区切り文字)))」という式により、区切り文字で区切られた最後の要素を取得できます。

手順

f:id:accs2014:20200627102559p:plain:right:w500

 B列に、区切り文字(カンマ)で区切られたいくつかの文字列が入力されています。
 これらの文字列から、区切られた最後の項目をそれぞれ取得するものとします。
 最後の文字列のように文字列の末尾が区切り文字であるときに「空文字以外を取得する例」と、「空文字を取得する例」の2つの例を示します。

空文字を取得しない場合

f:id:accs2014:20200627102604p:plain:right:w500

 1つ目の例です。
 D3セルに次のように入力して下方にフィルコピーしています。

=INDEX(SPLIT(B3,","),COLUMNS(SPLIT(B3,",")))

 基本的にSPLIT関数で文字列を分割してINDEX関数で「最後の項目の番号」を指定して取得しています。この番号は分割された項目の数であり「COLUMNS(SPLIT(B3,","))」にほかなりません。
 この例ではSPLIT関数の第4引数を省略していますので(TRUEと同じ)余分なカンマは無視され、常に1文字以上の文字が取得されます。
 なお、3つめ(5行目)のように半角数字を抽出した際には数値として取得されるのが特徴で、REGEX~関数などの文字列関数を使って抽出した場合とは異なる結果となります。

空文字を取得する場合

 

f:id:accs2014:20200627102608p:plain:right:w500

 2つ目の例です。
 D3セルに次のように入力して下方にフィルコピーしています。

=INDEX(SPLIT(B3,",",,FALSE),COLUMNS(SPLIT(B3,",",,FALSE)))

 こちらではSPLIT関数の第4引数をFALSEとしていますのでカンマは無視されず、文字列の末尾がカンマであるときは空文字が取得されます。