Excel Lambda その2

    1. Lambda 関数の使用例
  • 4.1 一次元 → 一次元変換
  • 4.1.1 テキストを反転する

・入力例

A
1 123
2 456
3 7890

・出力例

A
4 321
5 654
6 0987

・計算式
=LET(txt, A1:A3,
cmt,    “reverse_txt(txt)、テキストを前後反転する”,
reverse_txt, LAMBDA(txt, LET(
max_len,MAX(LEN(txt)),
s,SEQUENCE(,max_len,max_len,-1),
a,BYROW(MID(txt,s,1), LAMBDA(x, TEXTJOIN(“”, TRUE,x))),a
)),
reverse_txt(txt)
)

  • 4.1.2 文字の繰り返し

・入力例

A B C
1 AA B C
2 2 1 3

・出力例

A B C D E F
3 AA AA B C C C

=LET(txt,A1:C1, num,A2:C2, c,TEXTJOIN(“”,,REPT(SEQUENCE(,COLUMNS(num))&”★”,num)),  INDEX(txt,,TEXTSPLIT(c,”★”,,TRUE)+0) )

  • 4.1.3 先頭の指定文字列を削除

・入力例

A
1 123
2 456
3 77890

left_txt,{“12″,”4″,”5″,”7″,”9”}

・出力例

A
4 3
5 6
6 890

・計算式
=LET(txt,A1:A3, left_txt,{“12″,”4″,”5″,”7″,”9”},
cmt, “del_left_txt(txt, left_txt)、先頭の指定文字列を削除、left_txt にない文字まで先頭から文字列を削除する”,

cmt_a, “reptxt(txt, num)、文字の繰り返し”,
reptxt,LAMBDA(a,b,INDEX(a,,TEXTSPLIT(TEXTJOIN(“”,,REPT(SEQUENCE(,COLUMNS(b))&”★”,b)),”★”,,TRUE)+0)),
cmt_b, “del_left_txta(txt, left_txt)、先頭の文字列を削除、連続文字削除非対応”,
del_left_txta, LAMBDA(txt,left_txt, LET(
a,BYROW(txt, LAMBDA(txt, REDUCE(txt, left_txt, LAMBDA(a,b, IF( LEFT(a,LEN(b) )=b, MID(a,LEN(b)+1,LEN(a)),a ) ))) ),a
)),
numa,MAX(LEN(txt)),
left_txta,TEXTSPLIT(TEXTJOIN(“★”,,reptxt(TEXTJOIN(“★”,,left_txt), numa)),”★”),
del_left_txta(txt, left_txta)
)

つづく

コメント

  1. vrak より:

    注意事項 上記計算式の、””の文字がなぜかばけているようです。
    Excelにコピペしたあと、””を、手入力で入力し直して使用してください。

タイトルとURLをコピーしました