LAMBDA 関数とユーザー定義関数
2022年2月、Microsoft 365 版の Excel に、「LAMBDA関数」とそれに関連するいくつかのヘルパー関数が導入されました(「LAMBDA」は「ラムダ」と読みます)。
今回のアップデートは単に、また新たな関数の追加された、だけにはとどまりません。
Excel 数式を完全なプログラミング言語するための数式言語仕様の拡張が行われました。
その意味するところは、VBAを使わなくても、数式だけで独自の関数(ユーザー定義関数あるいはカスタム関数とも)を作れるようになったということです。
今後、LAMBDA関数を活用すれば、これまでどんどん複雑になりがちで管理が面倒だった Excel シートの数式が、セルにベタ書きではなく、独自関数として機能や仕様ごとに整理できるようになります。 これで、数式の作成や修正、動作確認・検証、再利用等といった管理や取り回しをだいぶやりやすくできるような見込みができたのです。
ただし、それを活用し、使いこなせるまでには、また、お勉強が必要になります。
LAMBDA数式は一見単純で覚えることも少なそうですが、プログラミング言語としては VBA などとは対極にある流儀1を指向していて、ロジックの組み立ての発想からして異なっています。 別の言い方をすれば、これまでに積み上げた Excel 数式や VBA の知識や経験の延長線上にはないものなのです。
Excel 数式や VBA の上級者と言われる人でも(むしろそういう人こそ)、 これを理解して使いこなすには苦労されると思われます。
一方、Power Query の上級者なら、LAMBDA数式が本質的に M 言語と同じ方向を目指していることが解り、なじみやすいかもしれません。
LAMBDA 数式が Excel の技能者に受け入れられ実業務に適用されるまでには相当の時間がかかると思われます。(そんな時は来ないとさえ考える専門家もいます)
では、 プログラミングなんてやったこともない一般の Excel ユーザに至っては、LAMBDA 数式は難しすぎて役に立たない機能なのでしょうか。
そんなことはありません!
むしろ一般ユーザーの方が率先して活用すべきです。
LAMBDA 数式を使えば、Excel 数詞だけでは対応が困難だった昔からある数々のやっかいな問題に打開策を得られます。
LAMBDA 数式のいいところはコピー&ペーストですぐに使えるところです。 仕組みなんて理解しなくても、誰かが作ったユーザー定義関数自体を使うのは簡単です。 難しいことは得意な人に任せて、便利なものはどんどん取り込めばいいのです。
このブログでもこれから、コピペで使える便利なユーザー定義関数を作成し公開していきたいと思います。
皆さんに Excel の独りよがりな新機能にいちいちかかずらっている時間はありません。 皆さんのビジネスの戦場はそこではないのです。 そんなものは飛び越えて、先のその先へと切り開いていってほしいと思います。
ユーザー定義関数集リンク
ライブラリのように関連機能をまとめるため、とりあえず以下のようなテーマの記事を検討しています。 記事が公開されたらここに随時追記しリンクを張っていきます。
- 文字列操作(その1)
- 文字列操作(その2)
- 日付操作(その1)
- 日付操作(その2)
- 配列操作
- データ変換
- 組み合わせ
- 表組み換え
- 集計
- データ分析
- 前処理
- 乱数生成
- 補助関数
要望があれば追加を検討しまうのでご意見ください。
ユーザー定義関数の使い方
LAMBDA 数式は「名前の定義」に登録することで、ユーザー定義関数としてシート上の数式から使えるようになります。
本ブログで紹介されたユーザー定義関数は「新しい名前」ダイアログに入力する項目の内容として記載しているので、基本的にそのままコピペしてもらえればOKです。
「名前」が数式で使う関数名になります。
基本的には、記事中で提案している名前を使って下さい。 判りやすければ任意の名前を付けていいのですが、一部使用できない文字があるのと、すでにある関数名と被らないように注意してください。
また、「再帰関数」とある関数は関数名を変更したら数式の修正もしないとエラーになるので、注意が必要です。
ちなみに日本語の関数名を付けることも可能のです。
「範囲」は関数の登録先を指定します。登録先としてブックか各ワークシートを選択できます。
ブックに登録すると、その関数はどのシートからもそのまま使えます。 ワークシートに登録すると、そのシートのセルからは関数名だけでそのまま使えますが、他のシートから使うにはシート名も付加する必要があります。 どちらがいいのかはまだ何とも言えません。
ちなみにユーザー定義関数を使っている数式セルの範囲をコピーして他のワークブックに貼り付けると、その関数ごと名前の定義にもコピーされます。
「コメント」は、セルの数式で関数名を入力しているときに表示される機能説明の内容となります。 空でも問題ないのですが、あるばけっこう便利です
「参照範囲」には LAMBDA数式を丸ごとコピーして「貼り付け」ます。 テキストボックスが小さすぎてよくわかりませんが、大丈夫、入ってます。
その前に「参照範囲」にもともとあった数式は削除しておく必要があります。
とはいえ「参照範囲」で数式を編集するのはいろいろ面倒で困難です。
もしどうしても直接編集が必要ならF2
キーを押して「編集モード」にすれば矢印キーも使えるようになって編集しやすくなります。
F2
⇒ Home
⇒ Ctrl
+ Shift
+ End
⇒ Delete
で確実に全削除できます。
参考資料
- Announcing LAMBDA
- https://techcommunity.microsoft.com/t5/excel-blog/announcing-lambdas-to-production-and-advanced-formula/ba-p/3073293
- Office TANAKA - ワークシート関数[LAMBDA 関数]
更新履歴
- [2022/04/25] 文字列操作その2の記事へのリンクを追加、文面の一部修正。
- [2022/06/12] 日時操作関数その1/その2の記事へのリンクを追加。
- [2022/07/17] データ分析の記事へのリンクを追加。
-
コンピューター科学で関数型言語と言われるものです。↩