ニュース

Excelの新関数「LAMBDA」(ラムダ)が一般提供開始 ~Excel数式が本格的なプログラミング言語に

プチ開発環境アドインも「Microsoft Garage」プロジェクトで提供

「Excel」の新しい関数「LAMBDA」

 米Microsoftは2月8日(現地時間)、「Excel」の新しい関数「LAMBDA」(ラムダ)とそのヘルパー関数の一般提供を発表した。「Microsoft 365」の最新チャネルで配信中の「Excel」ビルドで利用できる。

  • Windows版:16.0.14729.20260
  • Mac版:16.56(Build 21121100)
  • iOS版:2.56(Build 21120700)
  • Android版:16.0.14729.20176

 「LAMBDA」関数を利用すると、「Excel」の関数で新しい関数を作り出すことが可能。ユーザーが独自のカスタム関数を定義し(「LET」関数を組み合わせれば名前も付けられる)、ワークブックで再利用することができるので、冗長な繰り返し表現が排除されて数式の見通しがよくなるほか、無用な入力ミスを防止できる。

 また、これまで「Excel」の数式だけは記述できなかった動的なループ処理を記述できるようになるのもメリット。従来の「Excel」で同様のことを実現しようとすると、どうしてもVBA(Visual Basic for Applications)の知識が必要となっていたが、それが不要となる。

「Excel」の関数で新しい関数を作り出す(後述の「Advanced formula environment」でコードを記述する様子)

 さらに、「LAMBDA」関数とそれを引数にとることのできるヘルパー関数を活用すれば、条件に合致するセルだけを集計したり、加工して新しいリストを作り出すことも可能。本格的なプログラミング言語と同等のことが「Excel」の関数・数式だけで実現できてしまう。

「LAMBDA」関数を引数にとれるヘルパー関数
  • MAP 関数:与えられた配列の各要素に対しラムダ関数の処理を施し、新しい配列を返す
  • REDUCE 関数:初期値と配列を与え、配列から一つずつ要素を取り出してラムダ関数の処理を施し、最終的に一つの値にまとめる
  • SCAN 関数:初期値と配列を与え、配列から一つずつ要素を取り出してラムダ関数の処理を施し、新しい配列を返す
  • MAKEARRAY 関数:ラムダ関数の処理を適用して、指定された行と列の配列を返す
  • BYROW 関数:各行にラムダ関数の処理を適用し、その結果の配列を返す
  • BYCOL 関数:各列にラムダ関数の処理を適用し、その結果の配列を返す
  • ISOMITTED 関数:値があるかどうかをチェックし、TRUEまたはFALSEをす

 同社によると、「Office Insider」で実施したテストを通じて、「LAMBDA」関数には以下の改善が施されたとのこと。

  • 関数ツールチップ:名前付き「LAMBDA」関数を呼び出す際、自動補完とともに関数のツールチップを表示するように。ネイティブ関数と同じように「LAMBDA」関数を呼び出せる
  • 再帰制限の緩和:再帰処理の限界を当初の16倍に引き上げ。大量のデータを処理できるように
  • 「LAMBDA」ヘルパー関数の出力:ヘルパー関数がセルの配列ではなく単一セルを返す場合、当初は「#CALC」エラーを返す仕様だったが、セルの値を自動的に返すように

 なお、今回のリリースに合わせ、「Microsoft Garage」プロジェクトで「Advanced formula environment」と呼ばれるアドインの提供も開始されている。これは「LET」関数と「LAMBDA」関数を使って独自のカスタム関数を記述・管理するための実験的スペースで、小さな「Excel」関数の統合開発環境(IDE)ともいえるものだ。詳細は後日、レビュー記事でお伝えする。