エクセル入門
LAMBDA以降の新関数について

Excelの初心者向け入門解説
公開日:2022-08-16 最終更新日:2023-05-04

LAMBDA以降の新関数について


2022年2月頃にLAMBDA関数と関係するいくつかの新関数がMicrosoft 365(Office 365)で提供されました。
これらはLAMBDA関数とLAMBDA関数を引数に指定できるヘルパー関数群になります。


2022年3月頃には「Office Insider Program」でTEXTSPLITやVSTACKをはじめとした新関数が多数導入されました。
これらは、TEXT処理の関数群と、配列操作関数群です。
※2022年8月下旬から順次リリース開始されました。

問題集・使用例については以下のページに順次追加しています。

LAMBDA以降の新関数の問題集
・目次 ・LAMBDA踊るぞ編 ・LAMBDA踊るぞ編2 ・SCAN編 ・MAP編 ・REDUCE編 ・山手線営業の旅編 ・BYROW,BYCOL編 ・ここからはフリー問題だよ編 ・好きな関数を使ってくれ編 ・いろんな関数を使ってね編 ・魔球編 ・豚が木に登れば落ちることもある編 ・たまには100点とってみたいものだ編 ・これは何と言う処理なんだろ編 ・数字は嫌いなのだ編 ・外堀から埋めていくぞ編 ・なぜわざわざそうしたいのか編 ・かっこつけてんじゃないよ編 ・頭の体操だけど新関数の出番はあるか?編 ・定番だけど出してなかったよね編
LAMBDA以降の新関数の使用例
・2つの1次元配列から、それをクロス結合した結果を返す ・A列が同じ行のB列の値を連結して、A列の一意な値とともに出力 ・名前定義を使わずにLAMBDA関数で再帰する方法 ・文字列を大文字小文字変換して大小文字の全組み合わせを出力 ・2つのテーブルの片方しかない行を縦に連結出力 ・3連単、3連複のフォーメーション買目を全て列挙する ・FILTER関数の出力行数・列数を指定する ・月が縦で日が横の表を、曜日(7列)で縦に折り返す ・文字列内の括弧()()の中の文字を取り出して列挙 ・表内にあるセル内改行を複数行に展開 ・文字列の中から1文字削除の全パターン出力 ・クロスABC分析 ・月利が毎月変動する月複利の計算 ・レーベンシュタイン距離 ・文字列を数字と数字以外で分割 ・縦横スピルしないXLOOKUP代替(MATCH+INDEX,FILTER,CHOOSEROWS) ・直積(クロス結合、…


LAMBDA関数とLAMBDA関数を引数に指定できるヘルパー関数群

LAMBDA関数とLAMBDAヘルパー関数の一覧です。
LAMBDAヘルパー関数とは、LAMBDA関数を引数に取れ事ができる(LAMBDA関数と一緒に使う)関数てず。
※リンクは詳細解説ページへのリンクです。
関数名 構文
説明
LAMBDA =LAMBDA([parameter1, parameter2, ...,] 計算)
LAMBDA関数でカスタム関数(ユーザー定義関数)を作成することができます。
LAMBDA関数を「名前定義」に登録することで、どのシートのどのセルからもその「名前」で関数を呼び出せます。
また、LET関数の中でLAMBDA関数に変数を割り当てることで、LET内で使用可能なカスタム関数として使う事も出来ます。
MAP =MAP(array1, lambda_or_array)
配列にLAMBDAを適用して新しい値を作成することにより、配列内の各値を新しい値にマッピング(元配列に対して異なるデータを割り当て)して形成された配列を返します。
REDUCE =REDUCE([初期値], 配列, LAMBDA(アキュムレーター, 値, 計算))
配列にLAMBDAを適用して、各要素の計算結果を次の要素のLAMBDAアキュムレーターに渡すことで、配列を累積値に減らします。 累積値ではなく、中間値を出力する場合はSCAN関数を使います。
SCAN =SCAN([initial_value], 配列, LAMBDA(アキュムレーター, 値, 計算))
配列にLAMBDAを適用して、各要素の計算結果を次の要素のLAMBDAアキュムレーターに渡しつつ出力配列を作成していきます。
中間値ではなく、累積値を出力する場合はREDUCE関数を使います。
BYROW =BYROW(配列, LAMBDA(パラメーター, 計算))
配列の各行ごとにLAMBDAを適用して、行単位での計算結果を元配列と同じ行数(列数は1)の配列で返します。
行単位ではなく列単位で処理して行を集約する場合はBYCOL関数を使います。
BYCOL =BYCOL(配列, LAMBDA(パラメーター, 計算))
配列の各列ごとにLAMBDAを適用して、列単位での計算結果を元配列と同じ列数(行数は1)の配列で返します。
列単位ではなく行単位で処理して列を集約する場合はBYROW関数を使います。
MAKEARRAY =MAKEARRAY(行, 列, LAMBDA(行, 列))
LAMBDAを適用して、指定された行と列のサイズの計算された配列を返します。
つまり、指定された行と列のサイズの配列を作成する関数です。
ISOMITTED =ISOMITTED(argument)
LAMBDAの値がないかどうかを確認し、TRUEまたはFALSEを返します。
LAMBDAパラメータ以外も引数に指定できますが、そのような使い方をする必要はありません。


TEXT処理関数

テキスト処理を簡単かつ便利に行う事のできる新関数です。
※リンクは詳細解説ページへのリンクです。
関数名 構文
説明
ARRAYTOTEXT ARRAYTOTEXT (配列, [書式])
指定した範囲のテキスト値の配列を返します。
テキスト値は変更せずに渡し、テキスト以外の値をテキストに変換します。
VALUETOTEXT VALUETOTEXT(value, [format])
指定された任意の値からテキストを返します。
テキスト値は変更せずに渡し、テキスト以外の値をテキストに変換します。
TEXTBEFORE =TEXTBEFORE(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])
テキスト文字列から指定した区切り文字列の前に出現するテキストを返します。
区切り文字列の前ではなく後ろを取得する場合はTEXTAFTER関数を使用します。
TEXTAFTER =TEXTAFTER(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])
テキスト文字列から指定した区切り文字列の後ろに出現するテキストを返します。
区切り文字列の後ろではなく前を取得する場合はTEXTBEFORE関数を使用します。
TEXTSPLIT =TEXTSPLIT(text,col_delimiter,[row_delimiter],[ignore_empty], [match_mode], [pad_with])
列の区切り記号と行の区切り記号を使用して文字列を分割します。
列の区切り(横に分割)を使った場合は「データ」タブの「区切り位置」と同じような処理ができる関数です。
さらに、列(横)への分割だけではなく行(縦)に分割することもできます。


配列操作関数群

従来の関数では難しかった配列処理を簡単かつ便利に行う事のできる新関数です。
※リンクは詳細解説ページへのリンクです。
関数名 構文
説明
VSTACK =VSTACK(array1,[array2],...)
配列を縦方向(垂直方向)に順番に追加し、1つの大きな配列を作成して返します。
VSTACK関数は各配列引数を行単位で上から順に(つまり下へ下へ)追加して新しい配列を作成します。
横方向(水平方向)に結合する場合はHSTACK関数を使用します。
HSTACK =HSTACK(array1,[array2],...)
配列を横方向(水平方向)に順番に追加し、1つの大きな配列を作成して返します。
HSTACK関数は各配列引数を列単位で左から順に(つまり右へ右へ)追加して新しい配列を作成します。
縦方向(垂直方向)に結合する場合はVSTACK関数を使用します。
CHOOSEROWS =CHOOSEROWS(array,row_num1,[row_num2],…)
配列から複数の指定された行を返します。
CHOOSEROWS関数は、引数で指定された行番号の順番通りに配列から行を選んで新規配列を作成して返します。
行ではなく列を選択抽出する場合はCHOOSECOLS関数を使用します。
CHOOSECOLS =CHOOSECOLS(array,col_num1,[col_num2],…)
配列から複数の指定された列を返します。
CHOOSECOLS関数は、引数で指定された列番号の順番通りに配列から列を選んで新規配列を作成して返します。
列ではなく行を選択抽出する場合はCHOOSEROWS関数を使用します。
TOROW =TOROW(array, [ignore], [scan_by_column])
配列を横1行に変換して新たな配列を返します。
TOROW関数は、セル範囲や1次元または2次元の配列を受け取り、オプションで指定された順番で横1行の配列を作成します。
横1行ではなく縦1列の配列を作成する場合はTOCOL関数を使用します。
TOCOL =TOCOL(array, [ignore], [scan_by_column])
配列を縦1列に変換して新たな配列を返します。
TOCOL関数は、セル範囲や1次元または2次元の配列を受け取り、オプションで指定された順番で縦1列の配列を作成します。
縦1列ではなく横1行の配列を作成する場合はTOROW関数を使用します。
TAKE =TAKE(array, rows,[columns])
配列(またはセル範囲)の先頭または末尾から、連続した指定の行数または列数の配列(またはセル範囲)を返します。
指定部分を取得するのではなく、指定部分を除外する場合はDROP関数を使用します。
DROP =DROP(array, rows,[columns])
配列(またはセル範囲)の先頭または末尾から、指定した行数または列数を除外した配列(またはセル範囲)を返します。
指定部分を除外するのではなく、指定部分を取得する場合はTAKE関数を使用します。
EXPAND =Expand(array, rows, [columns], [pad_with])
配列(またはセル範囲)を指定された行と列のサイズに拡張した配列を返します。
配列の拡張される部分は埋め込む値を指定できます。
WRAPROWS =WRAPROWS(vector, wrap_count, [pad_with])
1次元配列(1列または1行)を指定された数で各行を折り返して新しい配列を作成します。
行で折り返した結果、配列の最終行の要素が不足している場合は指定の文字で埋められます。
行での折り返しではなく、列で折り返す場合はWRAPCOLS関数を使用します。
WRAPCOLS =WRAPCOLS(vector, wrap_count, [pad_with])
1次元配列(1列または1行)を指定された数で各列を折り返して新しい配列を作成します。
列で折り返した結果、配列の最終列の要素が不足している場合は指定の文字で埋められます。
列での折り返しではなく、行で折り返す場合はWRAPROWS関数を使用します。


ワークシート関数一覧

・文字列関数 ・日付と時刻の関数 ・情報関数 ・論理関数 ・検索/行列関数 ・数学/三角関数 ・統計関数 ・財務関数 ・エンジニアリング関数 ・データベース関数 ・アドイン/オートメーション ・キューブ ・Microsoft Office のサポート
ワークシート関数の一覧(2010以降)
・Excel2010で追加されたワークシート関数 ・Excel2013で追加されたワークシート関数 ・Excel2016/Excel2019で追加されたワークシート関数 ・Excel2021で追加されたワークシート関数 ・Excel2021より後の365で追加されたワークシート関数 ・Microsoft 365 Insider ・Microsoft「Office のサポート」



同じテーマ「エクセル入門」の記事

スピルとは:旧関数でスピルを使う問題と解説
スピルとは:スピルの新関数を使う問題と解説
スピルとは:ここまでの総合演習問題と解説
LAMBDA以降の新関数について
LAMBDA関数(カスタム関数の作成)
MAP関数(配列各値を新しい値にマッピングした配列を返す)
REDUCE関数(配列にLAMBDAを適用し累積値を返す)
SCAN関数(配列にLAMBDAを適用し格中間値を返す)
BYROW関数(配列の行単位にLAMBDAを適用し列を集約)
BYCOL関数(配列の列単位にLAMBDAを適用し行を集約)
ISOMITTED関数(LAMBDAの引数省略の判定)


新着記事NEW ・・・新着記事一覧を見る

VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)
スピらない スピル数式 スピらせる|エクセル雑感(2023-12-06)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ