Google Apps Script

【GAS】スプレッドシートのセル範囲(二次元配列)を検索する

こんにちは、もりです!

この記事では、スプレッドシートの「セル範囲」の文字を検索する方法を紹介します。

二次元配列

 

セル範囲の値を取得するgetValuesメソッドでは、このような「二次元配列」として取得されます。

 

これを検索すればよいのですが、ちょっと面倒くさい。一次元配列なら簡単に検索できるのに・・・

スプレッドシートのセル範囲を検索する

この2ステップで処理を進めていきます。

  1. 「二次元配列」を「一次元配列」に変換する
  2. 「一次元配列」を検索する

 

※この記事で紹介するスクリプトはV8ランタイムの実行環境で動作します

①「二次元配列」を「一次元配列」に変換するflatメソッド

Arrayオブジェクトのflatメソッドで「二次元配列」を「一次元配列」に変換します。

Arrayオブジェクト.flat(depth)

  • 引数:ネストされた配列を、どの程度の深さレベルでフラットにするかの指定。省略した場合は 1 となる。
  • 戻り値:配列要素をフラットにした新しい配列
  • 説明:配列要素を、指定の深さで再帰的に結合して新しい配列を作ります。二次元配列は一次元配列になります。
  • 公式リファレンスはこちら

 

サンプルコードです。二次元配列から、新しい一次元配列が作成されます。

②「一次元配列」を検索するincludesメソッド

Arrayオブジェクトのincludesメソッドで「一次元配列」を検索します。

Arrayオブジェクト.includes(value)

  • 引数:検索値
  • 戻り値:Boolean
  • 説明:配列の要素に検索値があればtrue, なければfalseを返す
  • 公式リファレンスはこちら

 

サンプルコードです。

【コードまとめ】スプレッドシートのセル範囲を検索する

flatメソッド、includesメソッドを組み合わせて検索します。

【まとめ】

スプレッドシートのセル範囲を検索する方法を紹介しました。

セル範囲をgetValuesメソッドで取得後、下記の手順で検索します。

  1. Array.flat()で「二次元配列」を「一次元配列」に変換する
  2. Array.includes(検索値)で「一次元配列」を検索する

 

配列を扱うArrayオブジェクトのメソッドを上手く使うと、スッキリ書くことができますね。ぜひ使ってみてください!