見出し画像

URLからフォルダID,ファイルIDを関数で取得[Googleスプレッドシート]

小ネタです。

Google Apps ScriptでGoogleドライブのフォルダID、ファイルIDを取得したいことはよくあります。
通常はDriveサービスのgetIdメソッドを用いますが、
スプレッドシート上にあるURL一覧からIDを取得する場合は
GASではなくSPLIT関数を応用すると便利な場合があります。

列AにURL、列BにIDを返すとします。

【フォルダURLからフォルダIDを取得】

セルA1:
https://drive.google.com/drive/folders/*****ID*****

セルB1:
=INDEX(SPLIT(A1,"/"),COLUMNS(SPLIT(A1,"/")))

セルB1に上記数式を用いると「*****ID*****」が返されます。

【ファイルURLからフォルダIDを取得】

セルA2:
https://docs.google.com/spreadsheets/d/*****ID*****/edit#gid=0

セルB2:
=INDEX(SPLIT(A2,"/"),COLUMNS(SPLIT(A2,"/"))-1)

セルB2に上記数式を用いると「*****ID*****」が返されます。


フォルダURLでは「最後のスラッシュの後がフォルダID」、
ファイルURLでは「最後のスラッシュと最後から2つめのスラッシュの間がファイルID」
という特性を利用し、SPLIT関数を応用します。

■SPLIT関数
指定した文字または文字列の前後でテキストを分割し、各部分を同じ行の別のセルに表示します

<構文>
SPLIT(テキスト, 区切り文字, [各文字での分割], [空のテキストを削除])

https://support.google.com/docs/answer/3094136?hl=ja

■COLUMNS関数
指定した配列または範囲内の列数を返します。

<構文>
COLUMNS(範囲)

https://support.google.com/docs/answer/3093374?hl=ja

■INDEX関数
行と列のオフセットで指定したセルのコンテンツを返します。

<構文>
INDEX(参照, [行], [列])

https://support.google.com/docs/answer/3098242?hl=ja

この記事が気に入ったらサポートをしてみませんか?