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

【QuickTips 32】Googleスプレッドシートで、このセルの値ってスピル?どのセルに式が入ってる?を確認する方法

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

    今回も超シンプルなネタです。

    Googleスプレッドシートで、このセルの値が他のセルの数式のスピルなのか? 手入力された値なのか? そして、スピルの場合はどのセルに式が入っているか?を確認するTipsを紹介します。

    ※「スピル」という言葉は、本来Excelにおいて あるセルに入れた数式の結果が回り(右方向 →、下方向 ↓)のセルへ展開される機能を指します。今回わかりやすくする為、Googleスプレッドシートに対しても「スピル」という表現を使用しています。



    Googleスプレッドシートでセルの値がスピルかどうか?どのセルに式が入ってるか?を確認する方法

    シンプルすぎるんで最初に解決方法を書きます。

    画像

    Googleスプレッドシートでセルの値がスピルかどうか?どのセルに式が入ってるか?を確認する方法

    それは

    セルを右クリックして「編集履歴を表示」を確認する

    です!

    Googleスプレッドシートでは数式バーを見ても、その値が直接入力されたものなのか?スピル数式の結果なのか?判断が出来ません。

    画像

    しかしセルの編集履歴を表示とすると、そのセルの値がスピルの結果であれば

    「【セル位置】の配列数式の結果」

    と表示されます。

    👆上の場合は C4セルに数式が入ってることが確認できますね。

    C4セルを確認すると =SEQUENCE(3,5,22) という式が入っており、

    画像

    式をDeleteで消してみると、C4:G6にスピルしていたことがわかります。

    もちろん スピルと思われるセルに適当な値を入れて

    画像

    左上のセル範囲で #REF !エラーを探すって方法もありますが、これをやると Googleスプレッドシートの変更履歴に残るんですよね。。

    今回紹介の方法は痕跡を残さず確認が出来るんで、ちょっとだけスマートかなと思います。



    「編集履歴を表示」機能とは?

    Googleスプレッドシートには、変更履歴を確認する2つの方法が用意されています。

    1つは スプレッドシート全体の変更履歴を確認できる

    画像

    メニューの ファイル > 変更履歴 > 変更履歴を表示 とする方法です。

    これを利用すると、サイドバーに履歴が表示され、いつ誰がどのような変更を加えたか?、そして その時のバージョン(状態)が確認・復元できます。

    画像

    もう1つが今回特殊な使い方をした、セルの右クリックから使える「編集履歴を表示」という機能です。

    画像

    これは単体セルを対象とする機能で(複数セル範囲を選択した場合は使えない)、このセルの値を 誰が、いつ、どのように編集したのか? 履歴を追うことが出来ます。

    画像

    確認できる編集履歴は、あくまでも直接セル内の値を変更したケースのみで、セルの色を変えたとか、セルに入った数式の結果が変わったといった場合は編集履歴に残りません。

    この履歴のテキストは選択、コピーが出来るので、

    画像

    誤って誰かがセルの内容を消しちゃった場合に、編集履歴を表示で元々入っていた値を確認、コピーして、これを再度セルに貼り付けすることで、ピンポイントで復元が出来ます。



    スピル式が展開されているセルは 編集履歴を表示出来ない

    面白いのは、今回のように スピル式が展開されているセルの場合は 編集履歴を確認すると

    画像

    【スピル式の入っているセル】の配列数式の結果

    と表示され、それ以前の直接入力による 変更履歴が見れなくなる点。

    編集履歴右上にあった < > ボタンがなくなっていますね。

    スピル式を削除すると再び履歴が表示されるようになります。

    画像

    当然ですが B1セルに入っていた =SEQUENCE(10) でB4セルに書き込まれていた 4という数値は 数式の結果である為、履歴には残りません。

    このセルの値は スピル式の結果なのか? どこに元の式が入っているのか?が確認できる「編集履歴を表示」 なかなか便利じゃないでしょうか。


    ただし、スピル式が どこまで展開されているか?(スピル範囲)は、残念ながら Googleスプレッドシートでは簡単に確認する方法がありません。

    画像

    これは残念。



    Excelのスピルはスピルの確認が便利になっている

    Excelのスピルはどうなっているか?も見てみましょう。

    スピル機能に対応しているExcelは、365版、Web版(Excelオンライン)、買い切りのExcel2021以降(2026年8月現在は Excel2021とExcel2024)です。

    いわゆるスピルは、実はGoogleスプレッドシートが先行で実装していました。

    当時、感度の高いExcelユーザーの間では、FILTER関数やSORT関数、QUERY関数といった機能が衝撃を持って受け止められ、Excelから乗り換えを検討する人も少なくなかったようです。

    実際mirも共同編集と、これにひかれて乗り換えた(GoogleWorkspace導入をプッシュした)クチです。

    ExcelとGoogleスプレッドシートの「スピル」は似ているようで結構違っています。

    画像

    ぶっちゃけ後発のExcelの方がユーザーフレンドリーで、痒い所に手が届く仕様になっているかなとw

    悔しいですが、紹介していきましょう。



    Excelはスピル判別、スピル範囲が簡単に確認できる

    画像

    Excelのスピル機能は、👆このように スピル範囲のセルを選択すると、スピル範囲全体が青枠で囲われた表示になります。

    青枠の左上のセルが実際に数式が入っているセルです。

    数式バーにはゴーストと言われる、スピル数式のグレーになった表示が入っています。

    画像のケースでは、B2セルに =SEQUENCE(10,5) という数式が入っており、B2:F11の範囲にスピルしていることが、F9セルをクリックしただけで確認出来ていますね。


    つまりExcelではセルをクリックしただけで、

    • このセルがスピルの結果なのか?

    • このセルに結果を出力しているスピル数式がなにか?

    • 起点となる(スピル式が実際に入っている)セルがどこか?

    が確認できるわけです。

    だから、👇のような切れ目がわかりづらいデータであっても

    画像

    クリック4回で

    B3に入れた数式 =SEQUENCE(2,5) が B3:F4にスピル
    B5に入れた数式 =SEQUENCE(8,4) が B5:E12にスピル
    F5に入れた数式 =SEQUENCE(7) が F5:F11 にスピル
    F12には 直接 8という数値が入力されている

    これらが確認できるわけです。

    Googleスプレッドシートでは、これが出来ません。。

    上で書いたQuickTips「セルの履歴を確認する」方法を使えば、Googleスプレッドシートでも、このセルがスピル結果かどうか? 起点となるセルがどこか? は確認できます。

    しかし、上で書いた通り スピル範囲がどこまで展開されているか?を確認することが出来ませんし、そもそも「セルを選択するだけ」に比べると手順が多いんですよね。



    Excelはスピル範囲だけを Ctrl + A で選択できる

    画像

    これも凄いなと思ったんですが、ExcelでもGoogleスプレッドシートでも 使えるショートカット Ctrl + A は、選択しているセルの 隣接する値が入ったセル範囲(リージョン)選択となります。

    しかし Excelの場合は、スピル式が展開されているセルを選択した状態で Ctrl + Aとすると

    画像

    隣接するセルに値が入っていた場合でも、スピル範囲のみが選択された状態になります。(もう1度 Ctrl + A で 隣接する値の入ったセル範囲が選択される)

    一方 Googleスプレッドシートの場合は、スピル範囲であっても隣接するセルに値が入っている場合は

    画像

    リージョン全体が選択されてしまいます。

    Googleスプレッドシートでは、スピル範囲だけを選択といったことが出来ません。



    Excelは可変するスピル範囲をスピル範囲演算子で取得できる

    もう1つExcelにあってGoogleスプレッドシートに無いスピル関連機能が、スピル範囲演算子です。

    画像

    Excelは スピル数式を入れたセル(例えばB5)を参照する際、お尻に #を付けて

    =B5#

    とすることで、展開されたスピル範囲をまるっと参照することが出来ます。

    これをスピル範囲演算子と言います。

    これがあることで、Excelはスピル式においても作業セルや作業シートに一度数式結果を出力させてから、それを参照して次の式でさらに加工といったことが簡単に出来ます。

    スピル範囲をまるっと取得できる スピル演算子が無い Googleスプレッドシートの場合は、一度作業セルに出力するとその結果範囲の取得が面倒になる為、作業セルなしで 1行数式(1セルの数式)で処理することが多くなります。



    その他の ExcelとGoogleスプレッドシートのスピルの違い

    スピル機能の違いは他にあります。


    Googleスプレッドシートのスピルは、基本はARRAYFORMULA関数を付ける

    Googleスプレッドシートの場合は スピルさせる為に、一部のスピル機能がある関数以外は ARRAYFORMULA関数を使う必要があります。

    ざっくり言うと 関数の機能という扱いです。

    画像
    Googleスプレッドシート


    画像
    Excel

    Excelは一部スピル非対応の関数もありますが、単体セルを指定していた箇所をセル範囲にすることで自動的にスピルします。

    つまり Excel側は、意識せずスピルする「標準機能」となっていると言えます。



    スピル展開範囲のセルに値が入っていた場合のエラーが違う

    Googleスプレッドシートの場合は、スピル範囲のセルに値が入っていて展開を邪魔した場合、 #REF !エラーとなります。

    👇エラーコメントを確認すると、

    【セル位置】のデータを上書きするため、配列結果は展開されませんでした。

    スピルに関連するエラーであることがわかり、どのセルに余計な値が入っているか確認できます。

    画像
    Googleスプレッドシート


    一方、Excelの場合はスピル専用の #スピル !(#SPILL!)というエラーがあります。

    画像
    Excelオンライン

    ただし無料のExcelオンラインの場合は、エラーメッセージを確認しても「どのセルが邪魔をしているか?」が確認できません。

    これはGoogleスプレッドシートの方が便利では?と思うかもしれませんが、これはあくまでも無料のWeb版Excelの仕様です。

    👇手元に365版のExcelがないので、Excel2024になりますがインストール版の場合はエラーが出た場合に ⚠️ (警告マーク)をクリックすると

    画像
    Excel2024

    「阻害しているセルを選択」というメニューが表示されるので、これをクリックすることで 邪魔をしているセルにジャンプします。

    さらに邪魔をしている値が直接入ったセルが複数ある場合でも

    画像

    このように一発で複数選択状態になるので、あとは Deleteで削除すれば解決。

    値が入ったセルが邪魔してスピル式が展開されていなくても、点線で式の結果が展開される予定のセル範囲もわかります。

    これはGoogleスプレッドシートよりも便利かも。。ぐぬぬ



    スピル時のゴーストセルのコピー(ドラッグ&ドロップ)の挙動が違う

    Googleスプレッドシートにおいては、別のセルからスピルした値が入ったセル(ゴースト)は、コピペにおいて直入力した値と同じような扱いです。

    画像

    普通に Ctrl + V でコピペができます。

    ただし切り取り(ドラッグ&ドロップ)の場合は特殊で、なんど切り取っても復活するゾンビセルのような状態となります。

    一方Excelのゴーストは、コピペにおいてもゴースト(実態が無い)のような扱いで

    画像

    普通にコピペは出来ず、Ctrl + Shift + V の値貼付けでのみコピペ可能な仕様となっています。

    これはどっちがいいというものでは無いですね。



    今回のまとめ

    今回は Googleスプレッドシートでセルの値がスピルかどうか?どのセルに式が入ってるか?を確認する方法

    セルを右クリックして「編集履歴を表示」を確認する

    を紹介しました。

    Excelとのスピル機能の違いをまとめてると、なんかGoogleスプレッドシートのスピルが劣っているようで凹んできましたがw

    • スピルの安定感(Excelは挙動が不安定な時がある)

    • スピルのユーザーへの浸透性(Excelは未だに反スピル派がいる)

    • 全員がスピルを使える(Excelはバージョン違いを気にする必要あり)

    この辺りは、Googleスプレッドシートのスピルの利点かなと思います。(無理やりひねり出した感がありますがw)


    今回は触れませんでしたが同じ関数でもスピル時の挙動が、ExcelとGoogleスプレッドシートで違うものがあります。

    代表的なものは、MAPやBYROWなどLAMBDAヘルパー関数。これはGoogleスプレッドシートでは、スピルのネストが出来るという優位性があります。


    一方、実務でよく使う SUMIFS関数はExcelではスピるのに、Googleスプレッドシートではスピル非対応だったりします。

    Excel、Googleスプレッドシート、両方のスピル機能のいいとこどりみたいな仕様に改善されていくことを期待したいものです。


     
     
     

    mir

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

    あなたへのおすすめ