
2022年8月、GoogleはGoogleスプレッドシートに名前付き関数のサポートとLAMBDA関数(および関連する複数の関数)を追加することを発表しました。これらの機能により、シート間での関数の共有が容易になるだけでなく、巧みに作成された1つの計算でデータセット全体を処理できるため、より洗練された処理が可能になります。
これらの新機能は、2022年8月24日より、Googleスプレッドシートのほとんどのユーザー向けにご利用いただけるようになりました。Frontline、Nonprofits、および従来のG Suite BasicとBusinessをご利用のお客様には、これらの機能はご利用いただけません。これらの機能について知っておくべき基本事項と、いくつかの例を以下でご紹介します。
Google スプレッドシートの新機能は何ですか?
名前付き関数
名前付き関数は、複雑な計算をより分かりやすくする傾向があります。なぜなら、適切に選ばれた言葉は、ほとんどの人にとって数式よりも早く意味を伝えることができるからです。例えば、(F – 32) x 5/9 という数式は理解しやすいでしょうが、CONVERTTOCELSIUS のようなカスタム名を使うと、この関数が華氏を摂氏に変換するものであることがより伝わりやすくなります。
参照: Google Workspace vs. Microsoft 365: チェックリスト付き比較分析(TechRepublic Premium)
さらに便利なのは、あるGoogleスプレッドシートファイルで作成・使用されている名前付き関数を、別のGoogleスプレッドシートファイルにインポートできることです。サポートページによると、この機能は「データ」>「名前付き関数」メニューに表示されるとのことですが、この記事を書いている2022年8月末時点では、私のGoogleアカウントではまだ「名前付き関数」オプションは利用できませんでした。
LAMBDAとヘルパー関数
追加されたLAMBDA関数とヘルパー関数を使用すると、関数に渡された値を操作するカスタム関数を作成できます。重要なのは、LAMBDA関数は配列(この用語に馴染みのない方のために説明すると、データや値の集合)を扱えることです。LAMBDA関数とヘルパー関数を使用すると、関数を作成してパラメータを渡すだけで、複雑なスプレッドシートの管理と保守が容易になります。
BYROW関数とBYCOL関数
それぞれ、BYCOL は配列項目を列ごとにグループ化して新しいデータ行を作成します (これが名前の由来です)。一方、BYROW は配列項目を行ごとにグループ化して新しいデータ列を作成します。
たとえば、風速がカレンダー グリッド形式で報告される気象データの配列では、BYROW を使用して任意の週の最大風速を返すことができます (図 B )。一方、BYCOL を使用して特定の日の最大風速を返すことができます (図 A )。
図A

図B

MAKEARRAY関数
MAKEARRAY は、計算された行と列の集合を作成する機能を提供します。例えば、MAKEARRAY は、掛け算表(図 C)のような計算されたデータセットや、ランダムに生成されたデータセットを生成することができます。
図C

MAP関数
MAP を使用すると、選択した配列に LAMBDA を適用した新しい配列を作成できます。天気関連の例を続けると、気温の配列(例:図 Dのセル範囲 A1:G5)にこれを使用して、華氏 32 度(摂氏約 15 度)未満の日のみを寒い日として識別する新しい配列(例:図 Dのセル範囲 A8:G11)を作成できます。
図D

REDUCE関数
REDUCEは、配列内の項目ごとにLAMBDAを繰り返し適用します。多くの場合、これは偶数のみを加算するなど、特定の値のみの計算に使用されます。天気予報のコンテキストでは、日照時間(分)を計算する際に、日照時間が240分を超える日のみをカウントするために使用されることがあります(図 E)。
図E

スキャン機能
SCANはREDUCEと同様に、配列内の各値にLAMBDAを項目ごとに適用します。ただし、REDUCEとは異なり、SCANは元の配列と同じ項目数を持つ新しい配列を作成します。SCANは、配列内の項目に計算を適用するために使用できます。
私の例では、最初のデータセットは日降水量の数値を表しているかもしれません。SCAN関数は、対応するサイズの配列を作成しますが、各セルには降水量の累計が表示されます(図Fを参照)。ここでも注目すべきは、2番目の配列のすべての数値が、1つのセルへの入力だけで作成されていることです。
図F

XLOOKUP関数とXMATCH関数
上記の関数に加えて、Google は、2022 年 8 月 31 日の時点で、さまざまな Google Workspace アカウントのいずれの Google スプレッドシートでもまだ利用できない 2 つの関数、XLOOKUP と XMATCH を発表しました。
XLOOKUP を使用すると、配列を検索し、一致する項目を返すことができます。例えば、州と州都のリストで、州を XLOOKUP すると、対応する州都が返されます。XMATCH はセルセットを検索し、項目の位置を返します。例えば、アルファベット順の米国州リストでアラスカを検索した場合、アルファベット順でアラスカより前にあるのはアラバマ州だけなので、アラスカの値は 2 になります。
関数に関する経験はどのようなものですか?
Google スプレッドシートで名前付き関数をご利用の場合、ご自身や同僚の方と関数の命名規則などを決めていらっしゃいますか?LAMBDA 機能により、Google スプレッドシートでのデータ配列の操作が効率化されましたか?上記の関数のうち、最も頻繁に使用するものはどれですか?その理由も教えてください。LAMBDA や Google スプレッドシートの LAMBDA ヘルパー関数に関するご意見は、Twitter (@awolber) でメンションまたはメッセージを送信してお知らせください。