質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

9666閲覧

GASで2次元配列を1列ごとに書き込みたい

Kodanosuke

総合スコア42

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/05/27 02:52

前提・実現したいこと

GASで以下のような2次元配列をスプレッドシートの列方向に書き込みたいと思っています.
しかし,いざ書き込めたと思っても指定範囲内には1が繰り返し書き込まれてしまいます.
どのようにしたら配列の内容をせるごとに書き込めるのでしょうか.
ご教授いただけると幸いです.
よろしくお願いいたします.

発生している問題・エラーメッセージ

特になし

該当のソースコード

GAS

1var data = [[1,2,3], 2[4,5,6], 3[7,8,9], 4[10,11,12]] 5 6data_sheet.getRange(data_sheet.getLastRow()+1, 1, 3).setValue(data[0]) 7 8

試したこと

data_sheet.getRange(data_sheet.getLastRow()+1, 1, 3).setValues(data[0])
としてみましたが,「Exception: データの行数が範囲の行数と一致しません。データは 1 行ですが、範囲は 3.行です。」というエラーが出て書き込めませんでした.

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

プログラム上で記載されている

data_sheet.getRange(data_sheet.getLastRow()+1, 1, 3).setValue(data[0])

ですが、data[0] が横に3つデータが並んでいるのに対して
getRange(data_sheet.getLastRow()+1, 1, 3) は縦に3つセル範囲指定されているからそのようなエラーが出るのではないでしょうか。

いくつか方法があるかと思いますが、下記を参考にやってみてはいかがでしょう。
参考①
参考②

投稿2020/05/27 03:59

mkk

総合スコア378

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

data_sheet.getRange(data_sheet.getLastRow()+1, 1, 3).setValue(data[0])

getRange は3行の範囲を取得してますが、setValue は1行分のデータをセットしようとしています。
あと多分 setValues の間違いでしょう。

APIリファレンスで引数を確認した方がいいです。

投稿2020/05/27 03:51

編集2020/05/27 04:00
draq

総合スコア2577

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問