Google Apps Script(GAS)

GoogleスプレッドシートのデータをGASで整理する【setValue・setValues編】

こんにちは。エクスチュアの岩川です。

前回のgetRangeの解説でも少し触れましたが今回は値を入れるための

setValue
setValues

について解説いたします。

getRangeの記事を見ている前提でのお話になりますのでgetRangeがわからないという方は是非ご覧ください。


◆setValue()

setValue()は値を入れるために使用します。

getRangeで指定したセルにsetValueで値を指定することでその値を入れることができます。

getRangeの記事でも使用したデータを使用して解説していきます。

・範囲が一つの場合

Sheetオブジェクト.getRange("B1").setValue("マスカット")
もしくは
Sheetオブジェクト.getRange(1, 2).setValue("マスカット")

上記は同じセルを指定しております。

setValueに入れた値をセルに入れますので実行するとデータが以下になります。

B1セルの値がマスカットになりました。

値だけではなく式もセットできます。

Sheetオブジェクト.getRange("B1").setValue("=A1")
もしくは
Sheetオブジェクト.getRange(1, 2).setValue("=A1")

と書くことで

B1の値が=A1という式に変わりました。

もちろんSUM等の関数も使用できます。

・範囲が複数の場合

getRangeでも少し触れた内容ですがもう一度記述させていただきます。

Sheetオブジェクト.getRange(1, 2, 3).setValue("マスカット")

B1-B3までの範囲を指定してsetValueを行います。

すると範囲全てに値が入ります。

B1-B3全てに”マスカット”がセットされました。

◆setValues()

setValuesは複数の値を指定した際に別々に値をセットすることができます。

そのため、セットする値は以下のように配列データとなります。

Sheetオブジェクト.getRange(範囲).setValues(配列)

注意しなければならないのが、この配列データは必ず二次元配列であるということです。

そのため例えば、A1-A3のデータであっても

var array = [ [ A1 , A2 , A3 ] ];

A1-C1のデータの場合

var array = [ [ A1 ] , [ B1 ] , [ C1 ] ];

のようになります。

例の表でA1-B3を指定して値を上書きしてみましょう

  var array = [ [ '赤', '青' ], [ '黄', '緑' ], [ '紫', '桃' ] ];
  console.log(sheet.getRange(1,1,3,2).setValues(array))

わかりやすいように配列データは色名にしました。

こちらを実行してみましょう。すると

このようにセットされます。

・配列データと指定した範囲のサイズが違う場合

セットしたい配列データと指定範囲のサイズが違う場合どのようになるのか見てみましょう。

範囲をA1-A3にし、同様の配列をsetValuesしてみましょう。

  var array = [ [ '赤', '青' ], [ '黄', '緑' ], [ '紫', '桃' ] ];
  console.log(sheet.getRange(1,1,3,1).setValues(array))

実行するとエラーが起こりました。

指定範囲とデータのサイズが違うとダメだということがわかりましたね。

ではA1-C3の範囲をとり、配列より大きい範囲を取ってみました

sheet.getRange(1,1,3,1).setValues(array)

実行しても同様のエラーが起こりました。

結果、配列のサイズと同じでないといけないことがわかりました。

・範囲指定ではない場合

仮に範囲指定ではない場合にもsetValuesは使用可能ですが、その場合でも二次元配列でないといけません。

つまり例の表を利用してA1だけに値を入れたい場合でも

  var array = [ ['マスカット'] ];
  console.log(sheet.getRange("A1").setValues(array))

と二次元配列であればsetValuesを使用することができます。

実行すると以下のようになります。

セットしたい値のサイズが可変的である場合は最初からsetValuesで配列を指定してあげた方が良いかもしれませんね。

躓きやすいポイントになっていますので注意しましょう。


setValue・setValuesについて解説させていただきました。

データの型とサイズを意識しながら組まないと間違えることが多いので気をつけましょう。

エクスチュアでは様々な企業様の基本的な悩みから高度な悩みまで丁寧にお手伝いいたします。

是非お気軽にお問合せください。

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Google Apps Script(GAS)

    Google App Scriptを特定のタイミングで自動で動かしたい

    こんにちは。エクスチュアの岩川です。さて、前回に引き続きGA…

  2. Google Apps Script(GAS)

    GASを利用してWebスクレイピングをやってみよう②

    エクスチュアの岩川です。前回 スクレイピングの初歩的なやり方…

  3. Google Apps Script(GAS)

    GoogleスプレッドシートのデータをGASで整理する【getRange編】

    こんにちは。エクスチュアの岩川です。今までGASの基本的な操…

  4. Google Apps Script(GAS)

    文字列置換アプリを作成しました

    こんにちは、エクスチュアの岩川です。突然ですがテキストツール…

  5. Google Apps Script(GAS)

    GASを利用してWebスクレイピングをやってみよう

    Webスクレイピングとはスクレイピングとはデータを収集し、使…

  6. Google Apps Script(GAS)

    Google App ScriptとGoogleスプレッドシートを連携させる

    こんにちは。エクスチュアの岩川です。前回はGASを使ってWe…

最近の記事

  1. Snowflake の Copilot が優秀すぎる件につい…
  2. Snowflake の新しいData Clean Roomの…
  3. 【GA4/GTM】dataLayerを使ってカスタムイベント…
  4. KARTE を使ってサイト外でも接客を
  5. 【GA4/GTM】dataLayerを活用しよう
  1. Tableau

    Tableau 2021.1 新機能紹介
  2. Adobe Analytics

    はじめてのAdobe Analytics実装
  3. 海外カンファレンス

    Adobe Summit 2018 レポート(2):経験の創造者たち
  4. Adobe Analytics

    Adobe Mobile SDK 4.xからAEP SDKに移行する
  5. ブログ

    大学3年生、マーケティングオートメーションを学ぶ
PAGE TOP