-文系卒のあっきょが残業を1時間も減らせた理由とは?-
プログラミングを学んで業務自動化アプリを自作すれば、残業時間を圧倒的に減らせます。
事務職や営業職などの非エンジニアでも、リスキリングで業務の負担を減らしています。
プログラミングスクールなら、仕事終わりの夜遅くにオンラインで自宅学習。
しかも、厚生労働省の教育訓練給付金制度を使えば受講料が最大70%OFFとお得。
プログラミングスクールはこんな社会人におすすめです。
- リスキリングで基礎からプログラミングを学びたい人
- 日常業務を自動化して残業時間を減らしたい人
- 転職や副業で有利なスキルを身につけたい人
- 独学で挫折した経験がある人
おかげで平日でも趣味の時間を取れたッス!
文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!
Google Apps Scriptで配列内の要素が配列になっていて要素の取り出しが大変ですよね。
しかし、flatメソッドを使えばコードを長くすることなく簡潔に配列処理できます。
この記事では、コピペOKのGoogle Apps Scriptのコードで解決します。
こんな人におすすめ!
- 二次元配列が何かわからない
- 二次元配列を一次元化して普通の配列のように扱いたい
- プログラミングでJavaScriptを学んだけど何を作っていいかわからない
誰でも無料で簡単にできますので気軽に学んでいきましょう!
二次元配列とは?
二次元配列とは、「配列の中にある配列」です。
GASでは、getValuesメソッドでスプレッドシートのセル複数から値を取りだすのに使います。
例えば、画像のようなスプレッドシートを作成して赤で囲んだ範囲の値を取得するとします。
Apps Scriptに複数のセルから値を取得するコードを貼り付けて実行します。
getValuesメソッド使ってセル内のデータを得ます。
function getValuesSheet() {
const sheet = SpreadsheetApp.getActiveSheet();
const values = sheet.getRange("A2:A6").getValues();
Logger.log(values);
}
関数を実行して実行ログをみると、配列の中に5つの配列が格納されています。
このように、配列内の要素も配列の状態を二次元配列といいます。
二次元配列のデメリット
二次元配列を処理するとコードが無駄に長くなることがデメリットです。
例えば、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メソッド | 二次元配列を一次元化
二次元配列を次元配列に変換するには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社を分析したッス!
次回の記事もご期待ください!
それでは、よいプログラミングライフを!