パスワードを忘れた? アカウント作成
15566421 story
スラッシュバック

Excelの新関数"LAMBDA"、一般提供開始へ 59

ストーリー by nagazou
開始 部門より
過去記事でも取り上げたExcelの数式言語の新関数「LAMBDA」が、2月8日から一般提供が行われ㑍テイルという。LAMBDA関数を利用すると、Excel上の関数で新たな関数を作り出せる。新たに配布されたLAMBDAとそのヘルパー関数に関しては、「Microsoft 365」の最新チャネルで配信中の「Excel」ビルドで利用できるとしている(Microsoftブログ窓の杜)。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  •  Excelで凝ったことすると何が一番困るかって、後から見たときに何やってるかを追うのが目茶苦茶大変なんだよね……。
     記述箇所バラバラで、ひたすら長い数式に複雑に飛びまくる参照、そして、LAMBDAはその複雑な数式を隠蔽してしまうと思われる。

     こういうのを活用して複雑なことをやろうとすればするほど、作成者以外には理解不能なシートが生まれるんじゃないかと思う。

     使いこなせればとても便利なのは間違いないんだけど、保守性にはめちゃくちゃ気を使う必要がありそう。

    --
    しもべは投稿を求める →スッポン放送局がくいつく →バンブラの新作が発売される
    • by Anonymous Coward on 2022年02月14日 16時16分 (#4199705)

      Excelで関数を定義できる、というのは正に可読性・保守性を上げるためのものだけどね。これまで同じロジックを何百ものセルにコピペすることがどんだけ多かったことか。そして一部の修正漏れでバグが発生することがどんなに多かったことか・・・

      親コメント
      • by Anonymous Coward

        せっかく関数定義して保守しやすいようにしたはずなのに
        昔からの習慣が抜けない人に保守されたばかりに関数定義があちこちにコピペされるカオスに

    • by Anonymous Coward on 2022年02月14日 16時23分 (#4199710)

      で、 Advanced formula environment [microsoft.com] ってのが出てきたんだな。

      親コメント
    • 記述箇所バラバラで

      このLAMBDA関数に関しては、そうはならないよ。
      名前付き関数としては、「名前の定義」で定義される。
      名前なし関数としては、LET関数と組み合わせてそのセルの中でしか使われない。
      # 一度くらい使ってみてた?

      親コメント
    • by Anonymous Coward

       Excelで凝ったことすると何が一番困るかって、後から見たときに何やってるかを追うのが目茶苦茶大変なんだよね……。
       記述箇所バラバラで、ひたすら長い数式に複雑に飛びまくる参照、そして、LAMBDAはその複雑な数式を隠蔽してしまうと思われる。

      そういたしますと

      使用している関数を別シートに列挙するマクロを入れまして隣の列にはコメントを書けるように致しましょう
      その書式は互換性のために先頭に#を入れる書式にしておきましょう
      そうして更にそのシートから関数を呼び出せるように関数はを使うときはINDIRECTで書くルールにしましょうか

      こういう感じになるんですね

      # このExcel作ったやつを出せやっ!的未来

      • by Anonymous Coward

        1文字1セルのシートを作って、BASIC で記述しよう
        #コメントはREMまたはシングルクォーテーションから開始

    • by Anonymous Coward

      マクロは大嫌いだけど、ワークシートの式の方って過去資産を保守するケースってそれほどあるものかね?
      なんか出力結果おかしいんだけど式がわけわからん、今の捨てて書き直そうで済まないかしら。
      セル式の場合共通関数とかは原則使えないから影響範囲が限定されるかなと。

      • by Anonymous Coward

        セル式の場合共通関数とかは原則使えない

        共通関数を作れるようにしようというのがLAMBDA関数 [microsoft.com]なんですわ。

    • by Anonymous Coward

      >  Excelで凝ったことすると何が一番困るかって、後から見たときに何やってるかを追うのが目茶苦茶大変なんだよね……。

      昔、バイト先のおじさんが同じようなことを言ってました

      Excelは良くない。昔はExcelなんて無かった。ソロバンがいちばん便利だ、と。

    • by Anonymous Coward

      Excelって保守も作者以外が理解する必要もなく、何か変えたい・やりたいときには一から作り直すものだと考えてます。
      そこを割り切ればExcelも悪くない。

    • by Anonymous Coward

      Excelに限らず…
      単純な記述でできないことはやらない
      という自制が働かないのはなんでなのか…

  • by Anonymous Coward on 2022年02月14日 14時38分 (#4199625)

    行われ㑍テイルという。

    • by Anonymous Coward

      namda式

    • by Anonymous Coward

      なんの誤植か気になって、行われ㑍テイルでググったらこのページ自身がトップに来てしまうという・・・。

  • by Anonymous Coward on 2022年02月14日 14時39分 (#4199627)

    ダンスする関数だな?

    • by Anonymous Coward
      MacOSの翻訳機能によると「現在ハンガリー語には対応していません」だそうなので分かりません。
    • by Anonymous Coward

      Excel使用者のイメージを読み取り、物理的なエネルギーに変換する機構では?
      使用者が限られるのが難点だが。

      # SFネタは色々ありそう

      • by Anonymous Coward

        お薬を飲めば一般人でも使えるで

    • by Anonymous Coward

      なにそのワンダバの親戚みたいの

      # もしかして一般人は「λかわいいよλ」しないのだろうか…

    • by Anonymous Coward

      ダンスする関数だな?

      ええ融通の聞く関数ですのでハードラックとダンスっちまいがちなんですよ

    • by Anonymous Coward

      明記はしてないけど「ラムダ」と読むっぽい。
      https://support.microsoft.com/ja-jp/office/lambda-%E9%96%A2%E6%95%B0-b... [microsoft.com]

      • Re:ランバダ? (スコア:3, 参考になる)

        by taka2 (14791) on 2022年02月14日 16時50分 (#4199741) ホームページ 日記

        まあ知ってる人には常識なんですが、知らない人は知らないですよね。

        計算機科学にラムダ計算 [wikipedia.org]という論理体系がありまして、
        ラムダ計算では、ラムダ式と呼ぶ表現形式で関数を記述します。

        たとえば、x,yを入力とし、x+yを返す関数は、よくある手続き型言語では

        f(x,y) { return x+y; }

        みたいに記述しますが、ラムダ式では、

        λxy x+y

        と書きます。関数型言語だとラムダ式の形で関数を表現するのはよくあって、LISPなら

        (lambda (x y) (+ x y) )

        と書いたりしますが、今回のEXCELのLAMBDA関数だと、

        LAMBDA(x, y, x+y)

        になる。

        今回のExcelのLAMBDA関数は、文字通りまさに「ラムダ式の形式で関数を定義する」関数になってるわけです。

        親コメント
      • by Anonymous Coward

        まあ普通にギリシャ文字Λの英語綴りだからね…

        • by Anonymous Coward

          コリン・ウィルスンの宇宙バンパイヤの翻訳でランブダと訳したヤツがいる。

      • by Anonymous Coward
        君が調べる前からみんな知ってて弄ってるんだよ
      • by Anonymous Coward

        あっさり抱き込まれてるんじゃねーよ。ヒトだぞヒト。しかも、ちょっとうなだれてるやつな。当然、作業者を意味する。

        • by Anonymous Coward

          あっさり抱き込まれてるんじゃねーよ。ヒトだぞヒト。しかも、ちょっとうなだれてるやつな。当然、作業者を意味する。

          λxy x+y
          xとyりますのでxとy足してね
          という覚え方でひとつ

    • by Anonymous Coward

      よう、おっさん。
      (もちろん自分も)

    • by Anonymous Coward
      ランバダ乱舞だ
      真面目な話、古くはランブダという読みがあったようです
    • by Anonymous Coward

      科特隊の出場音楽だよ

      • by Anonymous Coward

        科特隊出撃BGMはぱっと思いつかない。
        ワンダバってウルトラ警備隊かと思っていたら、MATの出撃BGM [wikipedia.org]から一般化したらしい。

        • by Anonymous Coward

          なぜかサンダーバードと混同していたyo

      • by Anonymous Coward

        ナンちゃんではなく?

    • by Anonymous Coward

      マトンと違ってクセがあんまりないやつだろ?

      • by Anonymous Coward

        最近、アニメのリメイクが発表されたやつだろ?

    • by Anonymous Coward

      ああ石川さんね、石川さん

  • by Anonymous Coward on 2022年02月14日 17時20分 (#4199765)

    そんなもん使って高級なプログラミングやる暇と能力があるならlispを使えばいいじゃん
    #コモディティ化した商品は無意味に高性能化するさだめ

    • by Anonymous Coward on 2022年02月14日 18時34分 (#4199841)

      Excelは作る人と使う人が別々のこともままあるし、
      数式を書く能力とプログラミングする能力は別だよね。
      Excelからlispを呼び出せるようにしろとか書けるようにしろとかならまだ分かるけど、
      それなら今回のLAMBDA関数でも充分実用範囲。
      lisp環境構築する暇があるならLAMBDA使えとも言える。
      そもそもマクロ(VBA)だのPowerQueryだのExcelから複雑な処理をする方法はすでに色々用意されていて、
      LAMBDA関数はExcelで完結することがメリットなんだからその意見は的外れ。

      親コメント
  • by Anonymous Coward on 2022年02月14日 18時18分 (#4199823)

    excelマクロは良く知らないけど、普通にFORとかLOOP関数ないの?
    ループは再帰で書けってことなのかな?
    だとすると、ものすごく遅くてメモリ食いそうな印象。

    • Excelのマクロは、VBA = Visual Basic for Applicationで記述するけど、当然ForもFor EachもDo While/Untilもある。

      今回のLAMBDA関数は、マクロ(=VBA)の中から呼び出すものではなくて、ワークシート関数。
      ループは再帰で書くんだろうけど、末尾再帰最適化くらいやってるんじゃね?

      親コメント
    • by Anonymous Coward

      そもそもforとかloopを使わずに済ます、使わずに済ませる気がする

    • by Anonymous Coward

      それは「よく知らない」ではなくて「まったく知らない」だな

      • by Anonymous Coward

        不通に表計算としては使うぞ。多少のマクロも。
        ただループが必要な場面では、pythonとかVBAで回すから、forやloopが無いか調べたこともなかった。

        • by Anonymous Coward

          不通に表計算としては使うぞ。

          バグっているのですね

typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...