LAMBDA以降の新関数について
2022年2月頃にLAMBDA関数と関係するいくつかの新関数がMicrosoft 365(Office 365)で提供されました。
これらはLAMBDA関数とLAMBDA関数を引数に指定できるヘルパー関数群になります。
これらは、TEXT処理の関数群と、配列操作関数群です。
※2022年8月下旬から順次リリース開始されました。
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関数を使用します。 |
同じテーマ「エクセル入門」の記事
スピルとは:旧関数でスピルを使う問題と解説
スピルとは:スピルの新関数を使う問題と解説
スピルとは:ここまでの総合演習問題と解説
LAMBDA以降の新関数について
LAMBDA関数(カスタム関数の作成)
MAP関数(配列各値を新しい値にマッピングした配列を返す)
REDUCE関数(配列にLAMBDAを適用し累積値を返す)
SCAN関数(配列にLAMBDAを適用し各中間値を返す)
BYROW関数(配列の行単位にLAMBDAを適用し列を集約)
BYCOL関数(配列の列単位にLAMBDAを適用し行を集約)
ISOMITTED関数(LAMBDAの引数省略の判定)
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。