【初心者必須】GASで二次元配列を一次元化するflatメソッド

当ページのリンクには広告が含まれています。

-文系卒もプログラミングで無駄な残業を1時間減らそう-

事務職や営業職などの文系職もリスキリングでプログラミングが人気

しかし、独学はプロに相談できずに挫折することが多いのが現実です。

プログラミングスクールなら、夜遅くでもオンライン上で担当講師がサポート

しかも今なら、厚生労働省の教育訓練給付金制度で受講料が最大70%OFFです。

挫折しない環境で確実にスキルアップしましょう。

こんな人におすすめ!

  • リスキリングで基礎からプログラミングを学びたい人
  • 日常業務を自動化して残業時間を減らしたい人
  • 転職や副業で有利なスキルを身につけたい人
  • 独学で挫折した経験がある人
あっきょ

おかげでぼくも趣味の時間を平日に取れたッス!

文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!

Google Apps Scriptで配列内の要素が配列になっていて要素の取り出しが大変ですよね。

しかし、flatメソッドを使えばコードを長くすることなく簡潔に配列処理できます。

この記事では、コピペOKのGoogle Apps Scriptのコードで解決します。

こんな人におすすめ!

  • 二次元配列が何かわからない
  • 二次元配列を一次元化して普通の配列のように扱いたい
  • プログラミングでJavaScriptを学んだけど何を作っていいかわからない

誰でも無料で簡単にできますので気軽に学んでいきましょう!

目次

サイト運営者

あっきょ

あっきょ

文系未経験から社内SEになった地方の物流企業の社員。一から開発したオリジナルアプリで業務効率化し残業80%減を達成。事務職や営業職のためのプログラミングを学べる『デイコー』を運営。得意な言語 : GAS, JavaScript, Python

二次元配列とは?

二次元配列とは、「配列の中にある配列」です。

GASでは、getValuesメソッドでスプレッドシートのセル複数から値を取りだすのに使います。

例えば、画像のようなスプレッドシートを作成して赤で囲んだ範囲の値を取得するとします。

GASでスプレッドシート使用時に二次元配列が発生する説明

Apps Scriptに複数のセルから値を取得するコードを貼り付けて実行します。

getValuesメソッド使ってセル内のデータを得ます。

function getValuesSheet() {
 const sheet = SpreadsheetApp.getActiveSheet();
 const values = sheet.getRange("A2:A6").getValues();

 Logger.log(values);
}

関数を実行して実行ログをみると、配列の中に5つの配列が格納されています。

このように、配列内の要素も配列の状態を二次元配列といいます。

GASでスプレッドシート使用時に二次元配列が発生した結果

二次元配列のデメリット

二次元配列を処理するとコードが無駄に長くなることがデメリットです。

例えば、for文で値を取り出してシート名をログ出力します。

function getValuesSheet() {
 const sheet = SpreadsheetApp.getActiveSheet();
 const values = sheet.getRange("A2:A6").getValues();
 const valuesLen = values.length; //配列の長さ

 for(var i = 0; i<valuesLen; i++){
   Logger.log(values[i]);
 }
 
}

結果は画像の通りです。

配列から取り出した要素が配列になっているのがわかります。

二次元配列のデメリット コードが煩雑化の説明

しかし、このままでは要素を処理できないのでもう一度for文で取り出す必要があります。

配列内の配列から要素を取り出す場合コードは以下のようになります。

function getValuesSheet() {
 const sheet = SpreadsheetApp.getActiveSheet();
 const values = sheet.getRange("A2:A6").getValues();
 const valuesLen = values.length; //配列の長さ

 for(var i = 0; i<valuesLen; i++){ //外側の配列の処理
   const arrayLen = values[i].length; //配列から取り出した配列の長さ

   for(var m = 0; m<arrayLen; m++){ //配列から取り出した配列の処理
    Logger.log(values[i][m]);
   }
 }

}

forを二重に使うのでコードが複雑になっています。

したがって、長くて複雑なコードを簡略化して配列を一次元化します。

二次元配列を一次元化するサンプルコード

GASで二次元配列を一次元化して配列を調整します。

解説の項目

  • flatメソッド | 二次元配列を一次元化
  • サンプルコード

flatメソッド | 二次元配列を一次元化

GASで二次元配列を一次元配列に変換するflatメソッドの説明

二次元配列を次元配列に変換するにはflatメソッドを使います。

引数はありません

このメソッドを一度書くだけで配列処理を簡素化できます。

サンプルコード

二次元配列を一元配列にしてみましょう。

定数valuesFlatで二次元配列のvaluesを一次元化します。

function getValuesSheet() {
 const sheet = SpreadsheetApp.getActiveSheet();
 const values = sheet.getRange("A2:A7").getValues();
 const valuesFlat = values.flat();

 Logger.log(valuesFlat);
}

配列を一次元化するテスト

配列を一次元化する関数を実行して、ログをみましょう。

Apps Scriptの上バーの文字が「getValuesSheet」になっていたら、「実行」を押します。

「このアプリはGoogleで確認されていません」と表示した場合はこちら

ログ出力を確認します。

配列を一次元化してすっきりします。for文などの繰り返し構文不要で実現できます。

【基本】GASで二次元配列を処理するコード一覧

この記事では、二次元配列を一次元化するflatメソッドを紹介しました。

デイコーでは、二次元配列から直接要素を取り出す方法も紹介しています。

コピペOKなのでぜひご活用ください。

おわりに | GASでスキルアップを目指すには

以上、GASで二次元配列を一次元配列に変換する方法でした。

そのままコピペして使ったり、自作のコードに取り入れましょう。

GASでスキルアップするなら当たり前ですが勉強が大事。

GASを効率的に学ぶなら以下の2つの方法が多いです。

  • 参考書やオンライン教材で独学
  • プログラミングスクールを利用

正しく学ぶことで非エンジニアでも実用的な業務効率化のスキルが身に付きます

デイコーでは、GASのサンプルコードからおすすめのプログラミングまで幅広く紹介。

初心者にもわかりやすく解説しています。

あっきょ

プログラミングスクールは82社を分析したッス!

次回の記事もご期待ください!

それでは、よいプログラミングライフを!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

文系未経験のWebエンジニア。事務職がプログラミング学習して社内SE部門立ち上げ&Webサイト作成。業務効率化で残業80%減を達成。得意な言語 : GAS, JavaScript, Python

目次