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)

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

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

  2. Google Apps Script(GAS)

    Google App ScriptでWebアプリを作る

    こんにちは。エクスチュアの岩川です。前回Google App…

  3. Google Apps Script(GAS)

    【Google App Script】GASを利用してslackに投稿するbotを作る

    こんにちは、エクスチュアの岩川です。業務でSlackを使用さ…

  4. Google Apps Script(GAS)

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

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

  5. Google Apps Script(GAS)

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

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

  6. Google Apps Script(GAS)

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

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

最近の記事

  1. 回帰分析はかく語りき Part3 ロジスティック回帰
  2. GCSへのSnowflake Open Catalogによる…
  3. VPC Service Controlsで「NO_MATCH…
  4. モダンデータスタックなワークフローオーケストレーションツール…
  5. Streamlit in Snowflakeによるダッシュボ…
  1. Adobe Analytics

    Adobe Analytics: DWHレポートの日付列をBigQueryのDa…
  2. Databricks

    databricksのnotebookを使ってみよう その1
  3. IT用語集

    ハードウェア(Hardware)、ソフトウェア(Software)って何?
  4. Mouseflow

    MouseflowにおけるITP対応について
  5. ヒートマップ

    【Tips】フリクションとは?
PAGE TOP