新野淳一(本記事は「Publickey」より転載)
新野淳一(本記事は「Publickey」より転載)
ITジャーナリスト/Publickeyブロガー。大学でUNIXを学び、株式会社アスキーに入社。データベースのテクニカルサポート、月刊アスキーNT編集部 副編集長などを経て1998年退社、フリーランスライターに。2000年、株式会社アットマーク・アイティ設立に参画、オンラインメディア部門の役員として2007年にIPOを実現、2008年に退社。再びフリーランスとして独立し、2009年にブログメディアPublickeyを開始。現在に至る。
Lambda関数は、上記のツイートが示す図にあるように、Excelがすでに備えている式や関数を組み合わせて、ユーザーが新たな関数を定義できる機能を提供します。これが今月に入り、Excelで利用可能になりました。
一方、「チューリング完全」とは、おおまかに言えば、コンピュータで計算できるあらゆる計算を表現できること、ということになります。
一般に、プログラミング言語はチューリング完全であり、ExcelもマクロやVBAなどExcelに備わっているプログラミング言語を利用すれば以前からチューリング完全の状態でした。
しかし今回ナデラ氏がツイートしたのは、そうしたプログラミング言語を用いず、Excelのセルに入力される数式だけでチューリング完全を満たした、ということなのです。
しかもナデラ氏は「世界で最も人気のあるプログラミング言語の」と、あたかもExcelの数式がプログラミング言語であるように表現しています。これはどういうことでしょう?
Excel数式をプログラミング言語とみなすための「チューリング完全」
実は、マイクロソフトは以前からExcelの数式をプログラミング言語と見なし、そのための機能追加を行ってきたのです。
マイクロソフトリサーチが1月25日付で公開したブログ「
LAMBDA: The ultimate Excel worksheet function」では、プログラミング言語としてのExcelの数式について次のように書かれています。
Despite its success, considered as a programming language Excel has fundamental weaknesses. Over the years, two particular shortcomings have stood out: (1) the Excel formula language really only supported scalar values—numbers, strings, and Booleans—and (2) it didn’t let users define new functions.
その成功にもかかわらず、プログラミング言語としてExcelを見なそうとすると根本的な問題があった。長年にわたり、特に次の2つの欠点が際立っていたのだ。(1)Excel数式言語には、実際にはスカラー値、つまり数字、文字列、ブール値しかサポートしていない。(2)ユーザーが新しい関数を定義できない。
ここで指摘された「プログラミング言語として見なしたExcelの数式」の2つの欠点うち、(1)のスカラー値しかサポートしていない点については、このブログが公開される2か月前の2020年11月、新機能「Custom Data Types」がExcelに搭載され、解決されています。
そして(2)の、ユーザーが新しい関数を定義できないという欠点も、今回のLambda関数の導入によって解決されました。
これによってExcelの数式は、プログラミング言語であれば満たしているチューリング完全となりました。
Excelの数式が多くの人にとってより強力な武器となる