見出し画像

【Microsoft 365】年間サブスク買っちゃった…ので


何をとち狂ったのか

自宅PCでMicrosoft 365 Personal1か月無料試用版をゲットしようとして、よりによって1年版を買っちまったようなのね。

以前設定したInsider channel設定も有効で、Python for Excelが使えるし。
1年間修業に励めという神からのお達しかな…。

この前の土日で別途Python開発環境を設定したのに。
まぁいいや。あるものは使い倒そう。

せっかくなので、LAMBDA関数を使う

(いまさらながら)ご存じの通り、Microsoft 365で公式に使える関数の一つにLAMBDA関数がある。

これでExcelはチューリング完全になった、とMSの中の人はドヤっていたが、要はこれをうまく使うと関数が自作できるよ、とのこと。

基本


たとえば1変数関数$${f(x)=2x+1}$$は、

=LAMBDA(x,2*x+1)

この形では関数に名前がない(無名関数)、引数を後ろに付けることで、セル上で計算できる。

=LAMBDA(x,2*x+1)(5)

fという名前で引用したい場合は、Excelの数式タブ-名前の管理で、以下のようにする。fの通用する範囲はブック全体またはシートを指定にできる。

簡単な1変数関数

2変数関数の例。直角三角形の斜辺を求めたい場合

=LAMBDA(x,y,SQRT(x^2+y^2)) 

同様に、pythagorasという名前を付けて

簡単な2変数関数の定義

簡単に使うことができる。

A1=1,B1=1と入れると教団に消されるから注意な。

再帰呼び出しを試す

次に再帰を使って階乗を求めてみる。
定義通り名前に登録する(すでにあるFACT関数と被らないようmyfactとする。

階乗の再帰的定義

以外と楽勝だった(ただし下記「注意点」を参照)

2変数の再帰といえばやっぱりアッカーマン関数でしょう。

・・・と、ドヤ顔で書こうとしましたが今の環境では動かなかったので以前Quoraに書いたコメント貼ってお茶濁します(別HNです)



注意点

今日スマホのExcel 365を初めて触ったのですが、LAMBDA関数は使えるけれど「名前の管理」使えないですね・・・。
再帰呼び出しを試そうと思ったのですが、LAMBDAのみ使ってやるにはラムダ計算をガチで理解する必要があります。

https://zenn.dev/hellorusk/articles/copy-from-blog-20200102

上記事のZコンビネー夕を使う例がありましたが、このおっさんに理解できる日は来るのだろうか?

この記事が気に入ったらサポートをしてみませんか?