Excelに変数を定義できるLET関数が追加されるらしいぞ
- KotorinChunChun
- 90248
- 239
- 274
- 544
.@domtrop0083 > LET(x,y,y,1,x+y) これはどうなるんやろう。 前の引数の名前を使うと #NAME! になりました。 `=LET(x,1,y,x+x,y)` のような事は可能でした。 togetter.com/li/1482947#c75… 「Excelに変数を定義できるLET関数が追加されるらしいぞ」togetter.com/li/1482947 にコメントしました。
2020-03-19 20:37:53Excelの生産性を高める新関数LET()が登場 #マイナビニュース news.mynavi.jp/article/202003… おお。。。補助列がいらなくなったり、数学や物理の公式をよりそれらしく記述できるようになるのはよいけど、 1.名前定義と衝突した場合は? 2.LET内で先に定義した変数は後半の変数定義に使える? など疑問が。
2020-03-19 20:38:13@aoki_taichi 1.LETの名前が優先される。 ただし、式入力中では名前定義の参照先セルに色がついて誤解しそうになる。 2.LET内で先に定義した変数は後半の変数定義に使える。 逆に前に使おうとすると #NAME!。 自身で使おうとした場合も #NAME!
2020-03-19 20:43:34@KotorinChunChun ありがとうございます! 2は嬉しいですね。 1はハマりそうで嫌だな。こっちも#NAMEにした方がよかっだと思う。。。 (関係ないけど、xlookupも検索キーの列に重複があったらエラー出すようにしてくれた方がハマりを減らせて良かったと思う)
2020-03-19 20:50:22@aoki_taichi 1はローカル変数だと思えば、一般的な言語と同じだから自然な仕様だと思う。(マークの問題は要改善) そもそもバッティングすることは、まず考えられないけれど・・。 #NAME!を出してしまうと今度はどの名前がバッティングしてるんだ?とハマりそうw XLOOKUPのは言えてるけど、そこはFILTERで。
2020-03-19 20:54:14LET関数で定義した名前は、入力候補にリアルタイムに反映される。この仕組は凄い。 また、表示されるアイコンは「名前定義」と同じアイコン。 やはりLET関数は「ローカル名前定義」と考えるのが良さそう。
2020-03-19 20:49:34以下のようなLET関数の式を、数式の検証で分析しようとするとExcelがクラッシュするんですが? フィードバックやな。 =LET(x,1,y,2,x+y)
2020-03-19 20:46:00#LET関数 で使うローカル変数名の先頭には、アンダースコアを付けるというローカルルールを定めたほうが良いかも。 v1 v2 v3 は _v1 _v2 _v3 みたいに。
2020-03-20 01:26:52#LET関数 で使う名前、セルアドレスと一致したらエラーになるので、短い名前が使えず地味に厄介だな。 敢えての全角文字で名前付けたほうが便利かも。 つまり、何が言いたいかと言うと、日本人大勝利\(^o^)/
2020-03-20 01:23:31Insider版で作ったエクセルブックを、LET関数が使えないバージョンのエクセルで、開いたらこうなりました。 関数名の前には _xlfn. が付与されますが、 変数名の前には _xlpm. が付与されるみたいです。 pic.twitter.com/dCiLObmKok
2020-03-20 00:45:49てか、2003 にしたのに、なんでLET関数使えないんだ? 先月の検証では、アプデした後2回Excelを再起動するとようやく新関数が使えるようになるという検証結果だったが、今回はダメそうだぞ? pic.twitter.com/7oaCVan0aH
2020-03-20 00:48:32Windowsを更新したが、やはり使えず。 一応Excelのアップデートを再実行したら、何故か再びアプデが降りてきた。 すると、バージョン2004になった。 そしてLET関数が使えるようになった\(^o^)/ 2004からだったか。 pic.twitter.com/CGuda8sZFU
2020-03-20 01:00:32@KotorinChunChun 同じようなパターンかもしれないけど、乱数使う時に乱数を固定できるとかはどうでしょう。
2020-03-20 02:36:35#LET関数 の利用例④ Excelでひらがなとカタカナを変換する数式を作ってみた excel-chunchun.com/entry/hiragana… より 配列を維持するためのINDEXが不要となりました。 これにより、配列が解除されてしまう悩みのタネから開放されました。 pic.twitter.com/eVywF5Xfmz
2020-03-20 02:18:19@excelspeedup 従来の数式の結果が配列の先頭になってしまった原因は、出力型が「単独値」と明示されてたからなんですよね。 ・従来のセルの場合は、既定が単独値でした。 ・スピルが導入されて、既定が配列に変更されました。(@で従来の単独値モード) ・ #LET関数 の変数も配列は代入可能なので、既定は配列です。
2020-03-20 09:38:25完全にプログラミングっぽくなってるね。 手続き型のように、上から順番に読んで行くだけなので簡単。 これインデントされてるから読みやすいだけで、ダラダラと書かれたら意味不明だからね。 #LET関数 は、ちゃんとインデントして書ける人にしか使わせちゃいけないw 数式エディタの強化を求めたい twitter.com/KotorinChunChu…
2020-03-20 12:13:20#LET関数 の利用例④(汎用化バージョン) ひらがなとカタカナの双方向変換が出来るようにしてみた。 pic.twitter.com/4U5etPjHAG
2020-03-20 12:08:58#LET関数 が一般に広まったら、これまでに作った数式を全部見直したほうが良い気がする。 特に長い引数を持つ関数は分解しないと読みづらいので、VLOOKUP とか IF の入れ子は要修正かも
2020-03-20 12:23:30SPLIT関数の本気が見えた twitter.com/furyutei/statu…
2020-03-20 12:42:58Google スプレッドシートのSPLIT関数 support.google.com/docs/answer/30… 互換オプションも追加してみた。 gist.github.com/furyutei/be05c… pic.twitter.com/4wd0lqsRRw
2020-03-20 12:12:47LET関数は入れ子にも対応していた。 gist.github.com/furyutei/be05c… ただし、親と同じ名前は定義できない(参照は可)。
2020-03-20 12:22:13#LET関数 - 名前はその位置に来るまでは未定義状態 - 名前のスコープはLET()内 となっている模様。 よって、 =LET( _v1, 1, _v2, LET( _v3, _v1+2, _v3 ), _v3, _v2+3, _v3 ) この式(_v3が内外どちらでも定義されている)は大丈夫みたい。
2020-03-20 18:50:58#LET関数 の名前はJavaScriptのconstと似た挙動だが、微妙に仕様が異なる。 LET関数の名前は値が確定した時点で初めてそのスコープ内で有効となる一方、JavaScriptのconstはスコープに入った直後に『存在するが初期化されていない』状態となるため、親スコープの同一名の変数にはアクセス不可となる。
2020-03-21 02:40:31#LET関数 - 名前はその位置に来るまでは未定義状態 - 名前のスコープはLET()内 となっている模様。 よって、 =LET( _v1, 1, _v2, LET( _v3, _v1+2, _v3 ), _v3, _v2+3, _v3 ) この式(_v3が内外どちらでも定義されている)は大丈夫みたい。
2020-03-20 18:50:58