メインコンテンツへスキップ
見出し画像

【QuickTips 31】Googleスプレッドシート CELL関数がアップデート。関数だけで簡単にシート名が取得できるようになった!

    シンプルでちょっと便利な Quick Tipsシリーズです。これまでのTipsをマガジンにまとめてます。

    今回は先行で2026年8月18日に Xでポストした 超シンプルなネタです。

    Googleスプレッドシートに、2026年2月 SHEET関数とSHEETS関数が追加されたけど、同じタイミングでこっそり CELL関数のパラメーターに sheet が追加されてた。

    =CEEL("sheet",C1) で式を入れた「この」シート名をリアルタイムで取得できる。こっちの方が便利なんでは?https://t.co/Y9jC2FWAkJ pic.twitter.com/68mExRBdO6

    — mir (@mir_for_note) August 18, 2026

    CELL関数のアップデートにより、全スプレッドシートユーザー念願だった? シート名が 簡単に数式だけで取得できるようになりました。



    CELL関数でシート名を取得する

    使い方は簡単。

    画像

    シート名を出力したいセルに

    =CELL("sheet",A1)

    ※CELL関数は A1セルに上の式を入れた場合でも循環参照エラーにはなりません

    これを入れるだけで、式をいれた「この」シートの名前が出力されます。

    この関数は シート名の変更を検知して再計算されるようで、

    画像

    このようにシート名の変更もリアルタイムで反映されます。

    シート名とシート内のセルの「見出し」 それぞれを手入力で書き換えていた人は、これで一気に楽になりますね。



    CELL関数でシート名取得はいつから出来るようになったのか?

    日夜Googleスプレッドシートを研究している mirからすると 「これは、いつから出来るようになっていたのか??」が気になります。



    CELL関数とは

    CELL関数とは Excelにも存在する関数で、第2引数で指定したセルの情報を出力する、ちょっと特殊な関数です。

    CELL(info_type, 対象範囲)

    出力する情報の種類(info_type)を 第1引数で指定します。


    画像

    ちなみに CELL関数は 第1引数はARRAYFORMULAでスピルするので、

    =ARRAYFORMULA(CELL(C5:C13,A5))

    と書いてもOKです。

    ただし第2引数で複数セルを指定しても、ARRAYFORMULAではそれぞれの情報を出力させることは出来ません。

    画像

    この場合は MAP関数を組み合わせる必要があります。



    CELL関数に sheet が追加された時期を調査

    現在、Googleスプレッドシートの CELL関数の公式ページには、

    画像

    いつの間にか  第1引数の info_typeに "sheet" が記載されていますが、以前はこのパラーメーターはありませんでした。

    また、CELL関数がアップデートされたという公式発表も調べた限りでは見あたりません。

    MAPやBYROWがスピルのネスト可能になっていた時もそうですが、Googleスプレッドシートはしれっとサイレントアップデートがあるんですよね。。

    インターネットアーカイブで 過去に遡って調査してみると

    画像

    2026年3月10日 時点では CELL関数の公式に、まだ sheet というタイプの記載はありません。

    しかし少し空きますが、この次のアーカイブログ 約2か月後 2026年5月5日時点では

    画像

    sheet の記述が追加されています。

    というわけで、公式発表はありませんが CELL関数の公式ページが更新され sheet というタイプが追加されたのは、

    2026年3月10日 ~ 2026年5月5日 の期間

    であると思われます。

    探した限り、こちらを最初に言及したのは Stack Overflow内での アルバート氏の 2026年5月7日のコメントでした。

    画像
    https://stackoverflow.com/questions/45502538/is-there-a-google-sheets-formula-to-put-the-name-of-the-sheet-into-a-cell

    ただ、CELL関数の公式ページ更新前から実装されていた可能性もあることと、シート名の変更を検知するという仕様から mirの見解としては

    2026年2月23日に GoogleWorkspceアップデートブログで告知のあった

    Googleスプレッドシートに 新関数としてSHEET関数、SHEETS関数 が追加されたのと 同じタイミングで、CELL関数に sheet というパラメーターが追加されたのでは? とにらんでいます。

    👇 SHEET関数、SHEETS関数についてはコチラ。


    いずれにせよ、シート名取得はGASに頼るしかなかったなかったので、組み込みの関数で簡単にシート名取得が出来るようになったのは、非常に喜ばしいことです。

    Xとかで、公式から発信すればいいのにって思います。



    いままではシート名取得はどうしていたか?

    数式をいれた「この」シートのシート名取得は、実は今まではGAS(Google Apps Script)を使ったカスタム関数(自作関数)に頼るしかありませんでした。

    画像
    function sheetname() {
      return SpreadsheetApp.getActiveSheet().getName();
    }

    👆こんなコードで sheetname という関数を定義してシート上で

    =sheetname() 

    と入れて利用します。

    1行コードなんで簡単ではありますが、

    • GASを使ったことがない人にはエディタを開くだけでもハードルが高い

    • シート名を変更してもカスタム関数はすぐには更新されない

    • カスタム関数は揮発性なので多用すると重くなる

    これらの不満がありました。

    一応、他のシートであれば 同じくCELL関数の "address"を使って取得した

    画像

    【シート名】!【セル位置(A1表記)】

    というテキストから、REGEXEXTRACT関数を使って正規表現で シート名部分だけ取得、なんてことも出来ますが

    =REGEXEXTRACT(CELL("address",'シート4'!A1),"^'(.+?)'!")

    式を入れた「この」シートを対象に出来ず、式もやや複雑で使い勝手が良いとは言えませんでした。


    ちなみに Excelの場合は、CELL関数に "filename" というパラメーターがあるので、

    画像
    https://support.microsoft.com/ja-jp/excel/functions/cell-function

    これで取得したファイル名の文字列から、365であれば TEXTAFTER関数でシート名だけを取得なんて方法もありますが、残念ながらCELL関数のfilenameは Web版のExcelでは使えません。

    また、365版以外のExcelだとシート名だけ取り出すのが少し面倒だったりします。


    今回、Googleスプレッドシートの CELL関数のアップデートで、

    =CELL("sheet",A1)

    汎用的なこの記述だけで、どんなシートでも シート名が取得出来るようになったのは、特に人口の多い初心者~中級者未満にとって大きいメリットと言えるでしょう。(Excelよりも簡単になりました)

    ぶっちゃけ SHEET関数やSHEETS関数よりも使えるアップデートかもしれませんw

    もちろん、スプレッドシートファイル(ブック)内の全てのシート名を取得したり、ハイパーリンクで他のシートや他のセルに飛ぶための シートID(gid)を取得することは 組み込みの関数では無理なので、今後もシート関連で GASのカスタム関数を使う機会はあるでしょう。



    CELL関数でシート名が取得できると なにが便利か?

    シート名を見出しとして、シート上にそのまま出力する使い方も便利ですが、それ以外にも色々活用できそうです。



    FILTER関数でCELL関数で取得したシート名を条件に マスタから対象データだけをシート毎に抽出

    画像

    👆こんな感じの売上マスタがあった場合、部門ごとにシートを分けて売り上げが見れるようにしたい時に

    画像

    部門ごとのシート構成を 見出し行と

    =FILTER('マスタ'!A:C,'マスタ'!B:B=CELL("sheet",A1))

    こんな式をA2セルに入れておくだけで

    画像

    シート名を各部門名にするだけで、その部門のデータだけがシートに出力されます。

    いちいちシート上のどこかのセルや式内に「首都圏営業部」を入れる必要はありません。



    CELL関数で取得した―シート名に対応するマスターシートをINDIRECT関数で参照。QUERY関数で集計

    他にも揮発性関数のINDIRECTを使うので注意は必要ですが、マスタが営業部ごとに分かれていて、マスタに紐づく集計シートを作りたい場合

    画像

    =QUERY(INDIRECT(CELL("sheet",A1)&"マスタ!A:C"),"select month(Col1)+1,sum(Col3) where Col1 is not null group by month(Col1)+1 label month(Col1)+1 '月',sum(Col3) '売上合計'" )

    こんな式で、自動的に式を入れたシートの【シート名】+マスタというシートのデータを対象としてQUERY関数で集計が可能となります。


    画像

    首都圏営業部のシートをコピーして、シート名を 関西営業部 にするだけで、関西営業部マスタのデータをQUERY関数で集計できました。



    URLアレンジ クエリ抽出に CELL関数で取得したシート名を組み合わせる

    さらに応用として、前回のnoteで紹介した URLアレンジでクエリ抽出もシート名が利用できるので、

    設定シートのA1セルに

    ="https://docs.google.com/spreadsheets/d/【シートID】/gviz/tq?tqx=out:html&range=A:C&tq="&ENCODEURL("select month(A)+1,sum(C) where A is not null group by month(A)+1 pivot B label month(A)+1 '月'")&"&sheet="

    ※【シートID】には実際のシートIDを入れる

    こんな式を入れてA1セルを 名前付き範囲で 「クエリURL」と設定してから

    画像

    首都圏マスタシートに

    =HYPERLINK(クエリURL&CELL("sheet",A1),"月ごとの集計")

    こんな式をいれておけば

    画像

    クリックしただけで月ごとの集計がHTML出力されるハイパーリンクが完成。

    対象のシート部分はCELL関数を使って可変になっているので、式を入れたE2セルをコピペすれば

    画像

    同じ表構成の他のマスタシートで、そのまま使えます。

    これも便利ですね。



    今回のQuickTips関連note

    今回は Googleスプレッドシートで、2026年3月頃にしれっと CELL関数のアップデートがあり、 第1引数の info_type に "sheet" が追加されてたよー。

    で、これを使った =CELL("sheet",A1)  って式で、簡単にシート名が取得出来て超絶便利だよーという QuickTips でした。

    活用ください!


     
     

    mir

     
     
    元Excel職人・VBA使いから、Googleスプレッドシート職人・GAS使いにジョブチェンジ。謎解き感覚で お題(課題)を解決していくような記事を書こうかなと。その他、AIやらGeminiやらGoogleWorkspaceネタ全般

    あなたへのおすすめ