メインコンテンツへスキップ
見出し画像

【スプレッドシート自動化】繰り返し作業を一撃で!MAP×BYROWで「分身の術」をマスター【第6回】

    はじめに:繰り返しの苦痛から解放される

    ここまでの連載で、検索・抽出・集計・連携をマスターしてきました。しかし、まだ1つ残っている課題があります。

    「この計算を100行分、全部に適用したいんだけど…」

    「1行ずつ数式をコピーするの、面倒すぎる…」

    今回紹介するMAP関数とBYROW関数は、まさにこの問題を解決する「分身の術」。1つの数式を書くだけで、全行に自動適用されます。

    LAMBDA:MAP・BYROWの心臓部

    MAP・BYROWを理解するには、まずLAMBDA関数を知る必要があります。

    =LAMBDA(引数, 計算式)

    LAMBDAは「名前のない関数」を作る関数。MAP・BYROWに「各要素に何をするか」を教える役割です。

    =LAMBDA(x, x*1.1)

    これは「受け取った値を1.1倍する」という処理を定義しています。

    画像
    LAMBDA関数とは

    MAP関数:各要素に同じ処理を適用

    基本構文

    =MAP(配列, LAMBDA(要素, 処理))

    全商品の価格を税込みに変換:

    =MAP(D2:D100, LAMBDA(price, price*1.1))
    画像
    実際の計算式
    画像
    FILTERで空白を除外(実務向き
    画像
    MAP関数の処理イメージ

    実践:条件付き変換

    売上金額に応じてランク判定:

    =MAP(D2:D100, LAMBDA(sales,
    
    IF(sales>=1000000, "S",
    
    IF(sales>=500000, "A",
    
    IF(sales>=100000, "B", "C")))
    
    ))

    100行分のIF関数を手動コピーする必要はもうありません。

    画像
    実際の計算式

    BYROW関数:行ごとに処理を適用

    基本構文

    =BYROW(配列, LAMBDA(行, 処理))

    MAPが「1つの値」を受け取るのに対し、BYROWは「1行全体」を受け取ります。

    各行の合計を計算:

    =BYROW(B2:E100, LAMBDA(row, SUM(row)))
    画像
    実際の計算式
    画像
    FILTER関数を使用すれば動的に対応できる

    実践:行ごとの複合計算

    各社員の「名前 + 部署」を結合:

    =BYROW(A2:C100, LAMBDA(row, INDEX(row,,1)&"("&INDEX(row,,2)&")"))
    画像
    実際の計算式
    画像
    空白行を除外して動的対応した場合の計算式
    画像
    MAP vs BYROWの違い比較表

    実践パターン集

    パターン1:一括データクレンジング

    全角スペースを半角に、前後の空白を除去:

    =MAP(A2:A100, LAMBDA(v, TRIM(SUBSTITUTE(v, " ", " "))))
    画像
    実際の計算式

    パターン2:条件に基づく一括フラグ付け

    期限切れデータにフラグを立てる:

    =MAP(E2:E100, LAMBDA(date, IF(date<F1, "⚠ 期限切れ", "✅ OK")))
    画像
    実際の計算式

    パターン3:BYROW × XLOOKUP

    各行の商品コードから商品名を一括取得:

    =BYROW(A2:A100, LAMBDA(row, XLOOKUP(INDEX(row,,1), マスタ!A:A, マスタ!B:B, "未登録")))
    画像
    実際の計算式

    パターン4:行ごとの最大値の列名を返す

    =BYROW(B2:E100, LAMBDA(row,
    
    INDEX(B1:E1,,MATCH(MAX(row),row,0))
    
    ))

    各行で最も大きい値がどの列にあるかを自動判定します。

    画像
    実際の計算式
    画像
    実戦のパターン

    注意点

    パフォーマンス

    MAP・BYROWはデータ量が多いと計算に時間がかかることがあります。1万行を超える場合は、QUERY関数での代替を検討してください。

    デバッグ

    LAMBDAの中身が複雑になったら、まず1セルで動作確認してからMAP/BYROWに組み込みましょう。

    まとめ

    • LAMBDA:名前のない関数を定義する(MAP・BYROWの心臓部)

    • MAP:配列の各要素に同じ処理を適用(1対1変換)

    • BYROW:各行に処理を適用(行全体を使った計算)

    • 繰り返し作業を1つの数式で完結させられる

    • XLOOKUP等と組み合わせれば、さらに強力に

    次回予告

    次回はいよいよ実践編。これまで学んだ関数を総動員して、売上レポートをゼロから自動構築します。データ取り込みから集計、ランキング作成まで、実務で即使えるテンプレートを一緒に作りましょう。

     
     
     
    イベント企画100回以上の経験を持つコミュニティマネージャー|AIと最小限のコードで業務を劇的に効率化中|PerplexityとGASで複雑な作業を簡単に自動化|非エンジニアでも実践できるAI活用術を日々発信|TableauNext2024/DATASaber/GCS認定コーチ/

    あなたへのおすすめ