🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google スプレッドシート

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

Google Apps Script

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

Q&A

解決済

2回答

1393閲覧

スプレッドシートの最終行を配列にしたい

Sou23

総合スコア38

Google スプレッドシート

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

Google Apps Script

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

0グッド

0クリップ

投稿2021/03/18 05:20

前提・実現したいこと

スプレッドシートの最終行だけを配列にしたいと思っています。

発生している問題

ログを取ると全ての要素が配列の同じ番号に格納されてしまっています。

該当のソースコード

GAS

1function glidemail() { 2 var ss = SpreadsheetApp.getActiveSpreadsheet(); 3 var sheet = ss.getActiveSheet(); 4 var rows = sheet.getLastRow(); 5 var range = sheet.getRange(rows,1,rows,37); 6 var datas = range.getValues(); 7 8 var date = datas[0]; 9 Logger.log(date); 10 11}

試したこと

datas.flatなどでログを取りましたが変わりませんでした。
よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

datas[0]に全ての値が入っている。それは確かにその通りです。
ですが、datas[0]自身が配列になっています。
data=datas[0]
としてdata[0]とかを確かめれば分かるんじゃないでしょうか

このdataが求めるものだと思います

投稿2021/03/18 12:24

xail2222

総合スコア1508

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

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

Sou23

2021/03/18 12:46

すみません、それぞれの列のvalueをそれぞれ別の要素として配列にしたいのです![A1,B1,C1...]という形になるはずです。もしわかればお願いします。
xail2222

2021/03/18 12:49

ん?もうなってるとおもいますよ。 data=[A1,B1,C1...]ですよ datasではなくdataです
Sou23

2021/03/18 12:50

なってました!!!ありがとうございます!
xail2222

2021/03/18 12:55 編集

ですよね。一瞬私が間違ってるのかとドキドキしてました
guest

0

ベストアンサー

javascript

1function glidemail() { 2 var ss = SpreadsheetApp.getActiveSpreadsheet(); 3 var sheet = ss.getActiveSheet(); 4 var rows = sheet.getLastRow(); 5 var datas = sheet.getRange(rows,1,1,37).getValues(); 6 Logger.log(datas[0])

これでどうでしょうか?

投稿2021/03/18 11:42

編集2021/03/18 11:59
gatten1217

総合スコア59

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

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

Sou23

2021/03/18 12:18

すみません、同じように全ての情報が同じ要素[0]に入ってしまいました……
gatten1217

2021/03/18 12:24

すみません、質問の意図をよくわかっていなかったかもしれません。 最終行のどのデータをとりたいのか教えていただけますか? 今は最終行が10行目だとすると A10~AK10までのデータを取っています。
Sou23

2021/03/18 12:27

わかりづらく申し訳ありません。それぞれの列のvalueをそれぞれ別の要素として配列にしたいと思っています。可能でしょうか?
gatten1217

2021/03/18 12:32

たとえば [[A1,A2,A3,A4,・・・],[B1,B2,B3,B4,・・・],・・・・] みたいなことでしょうか?
Sou23

2021/03/18 12:39

その場合datas[0]でA1、datas{1}でA2が求められますでしょうか?それであればその通りです!しかし最終行だけでいいので、[A1,A2,A3,A4,・・・]の一次元配列になると思っています。
Sou23

2021/03/18 12:40

あ、スプレッドシートの表記に倣うと[A1,B1,C1...]です。すみません。
gatten1217

2021/03/18 12:49

今のたとえの場合、datas[0]は[A1,A2,A3,A4,・・・]の配列になります。 A1が欲しい場合は、datas[0][0]、A2は、datas[0][1]です 最終行の配列は、先ほど回答したとおりとなります。 [[A1,A2,A3,A4,・・・],[B1,B2,B3,B4,・・・],・・・・]の配列が必要なら、分けて考えた方がよいかと思います。
Sou23

2021/03/18 12:51

求める時の書き方の問題だったんですね!!!ありがとうございます!!非常に助かりました!!!!
gatten1217

2021/03/18 12:53

>あ、スプレッドシートの表記に倣うと[A1,B1,C1...]です。すみません。 回答が前後してしまってすみません。 [A1,B1,C1...]であれば、最初の回答のdatas[0]がそれです。 datasは二次元配列なので、datas[0]と書くと二次元配列の最初の要素である一次元配列が返ってきます。 datas[0][0]と書くと、datas[0]で返ってきた一次元配列の最初の要素が返ってきます。 配列内の個々の要素が必要ならこれを使ってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問