質問するログイン新規登録

質問編集履歴

14

問題点の変更

2018/10/05 03:57

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -8,9 +8,11 @@
8
8
 
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
11
- 条件一致した配列データ)のセル位置取得 問題
11
+ 配列をfilterにかけて抽出したデータについて、
12
+ filterで条件をかける際に
13
+ [1]のセルに値がはいっていて、かつ 管理番号が同じ場合
14
+ という条件をしたいけどできない
12
15
 
13
-
14
16
  ### 該当のソースコード
15
17
 
16
18
  ```javascript
@@ -30,6 +32,7 @@
30
32
 
31
33
  var data = masterSheetData.filter(function(a) {
32
34
  return x[0] === a[1];
35
+ //ここでa[1]の値がはいってるかどうかもみたい
33
36
  });
34
37
 
35
38
  //Logger.log(x); // [21088-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天]

13

masterSheetDataのA列に行数を保持するようにしました

2018/10/05 03:57

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -22,23 +22,23 @@
22
22
  var rowIndex = 3;
23
23
  var colStartIndex = 1;
24
24
  var rowNum = masterSheet.getLastRow();
25
- var masterSheetData = masterSheet.getRange(rowIndex, colStartIndex, rowNum, 11).getValues();
25
+ var masterSheetRange = masterSheet.getRange(rowIndex, colStartIndex, rowNum, 11);
26
+ var masterSheetData = masterSheetRange.getValues();
27
+
28
+ var row = [];
29
+ editedData.forEach(function(x, i) {
26
30
 
27
- var data = [];
28
-
29
-
30
- masterSheetData.forEach(function(val,index) {
31
-
32
- editedData.forEach(function(x) {
33
31
  var data = masterSheetData.filter(function(a) {
34
32
  return x[0] === a[1];
35
-
36
- //例えばここで一緒にmasterSheetDataのindexも返すことできますか?
37
33
  });
38
-
39
- このdataの配列は商品管理表のデータでセルに入れたいんですけど
40
- 配列にデタ突っ込んでもセルには反映されないですよね・・・?
41
- ここでついでに列は決まってるので、行を取得したいです!
34
+
35
+ //Logger.log(x); // [21088-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天]
36
+ //Logger.log(data); //[[1.0, 21088-2, ティファニ, アクサリー, シバーピアス, , Mon Jun 04 16:00:00 GMT+09:00 2012, 1000.0, 青葉台, 楽天, Tue Oct 02 16:00:00 GMT+09:00 2018]][18-10-05 11:35:15:198 JST] [[2.0, 21862-1, , その他, 貿易銀貨, , Fri Jun 28 16:00:00 GMT+09:00 2013, 3000.0, 店頭, , ]]
37
+
38
+ //10 売り先 11売れ日 12販売金額
39
+ masterSheet.getRange(parseInt(data[0][0],10)+1,10).setValue(x[4]);
40
+ masterSheet.getRange(parseInt(data[0][0],10)+1,11).setValue(x[2]);
41
+ masterSheet.getRange(parseInt(data[0][0],10)+1,12).setValue(x[1]);
42
42
  });
43
43
  }
44
44
  ```

12

質問の変更

2018/10/05 03:30

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -3,12 +3,12 @@
3
3
  ・商品管理表をつくっています
4
4
  ・操作する商品は1万点くらいデータがあります。
5
5
  ・売上シートにて売上が立った商品を入力した際に、
6
- ・商品管理表に3項目くらいを
6
+ **・商品管理表に3項目くらいを**
7
- ・同じ管理番号の指定した列・行にコピーしたい(書き込みたい)
7
+ **・同じ管理番号の指定した列・行にコピーしたい(書き込みたい)**
8
8
 
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
11
- その配列の値のセル位置取得問題
11
+ 条件一致した配列(データ)のセル位置取得 問題
12
12
 
13
13
 
14
14
  ### 該当のソースコード
@@ -32,21 +32,13 @@
32
32
  editedData.forEach(function(x) {
33
33
  var data = masterSheetData.filter(function(a) {
34
34
  return x[0] === a[1];
35
+
36
+ //例えばここで一緒にmasterSheetDataのindexも返すことできますか?
35
37
  });
36
38
 
37
39
  このdataの配列は商品管理表のデータでセルに入れたいんですけど
38
40
  配列にデータ突っ込んでもセルには反映されないですよね・・・?
39
-
41
+ ここでついでに列は決まってるので、行を取得したいです!
40
42
  });
41
43
  }
42
- ```
44
+ ```
43
-
44
- 追記
45
- 早速の回答ありがとうございます。
46
-
47
- →どういうタイミングでこの関数が動作し、そのとき、売り上げがたったものはどうしても複数にしないといけないのかなど要件を質問文に追記または編集していただけますか?
48
-
49
- こちらは、ボタンを押したときに走るようにしたいです。
50
- 編集しながらとどっちが良いのかということにもなってくるとは思うのですが、
51
- 売上表に番号や金額や日付などを入力しおわった段階で
52
- マスターシートの番号を検索し、その番号の行の指定の列にコピーしたいです

11

不明な点の追加

2018/10/04 10:05

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -29,11 +29,14 @@
29
29
 
30
30
  masterSheetData.forEach(function(val,index) {
31
31
 
32
- editedData.forEach(function(x) {
32
+ editedData.forEach(function(x) {
33
+ var data = masterSheetData.filter(function(a) {
33
- if (val[1] === x[0]) {
34
+ return x[0] === a[1];
34
-
35
- }
36
- });
35
+ });
36
+
37
+ このdataの配列は商品管理表のデータでセルに入れたいんですけど
38
+ 配列にデータ突っ込んでもセルには反映されないですよね・・・?
39
+
37
40
  });
38
41
  }
39
42
  ```

10

解決した部分を消しました

2018/10/04 09:33

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -8,8 +8,7 @@
8
8
 
9
9
  ### 発生している問題・エラーメッセージ
10
10
 
11
- 配列操作がよくわからない
11
+ その配列の値のセルの位置取得問題
12
- お力添え願いたいです。
13
12
 
14
13
 
15
14
  ### 該当のソースコード
@@ -17,15 +16,6 @@
17
16
  ```javascript
18
17
  function hoge() {
19
18
  var editedData = getEditData();
20
- //[[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00
21
- //GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
22
- //[18-10-04 17:22:02:426 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0,
23
- //Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
24
- //[18-10-04 17:22:02:427 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0,
25
- //Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
26
- //[18-10-04 17:22:02:428 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0,
27
- //Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]....
28
-
29
19
  var idColumnIndex = 6;
30
20
 
31
21
  var masterSheet = _getSheet('商品管理表');
@@ -38,57 +28,19 @@
38
28
 
39
29
 
40
30
  masterSheetData.forEach(function(val,index) {
41
- //Logger.log(val[1]);
42
- //[18-10-04 16:13:36:098 JST] 32250-1
43
- //[18-10-04 16:13:36:098 JST] 32251-1
44
- //[18-10-04 16:13:36:099 JST] 32251-2
45
- //[18-10-04 16:13:36:100 JST] 32251-3
46
- //[18-10-04 16:13:36:100 JST] 32251-4
47
- //[18-10-04 16:13:36:101 JST] 32251-5
48
- //[18-10-04 16:13:36:102 JST] 32251-6
49
- //[18-10-04 16:13:36:102 JST] 32251-7
50
- //[18-10-04 16:13:36:103 JST] 32251-8
51
- //[18-10-04 16:13:36:104 JST] 32251-9
52
- //[18-10-04 16:13:36:104 JST] 32251-10
53
- //[18-10-04 16:13:36:105 JST] 32253-1
54
31
 
55
- Logger.log(editedData);
56
- //[["32222-14", 50000, (new Date(1538463600000)), false, "\u697d\u5929"], ["31853-2", 50000, (new Date(1538463600000)), false, "\u697d\u5929"], [0, 0, (new Date(-2209132800000)), false, "\u697d\u5929"]]
57
-
58
- Logger.log(editedData[index][0]);
59
- //undefined からプロパティ「0」を読み取れません。
60
- //[18-10-04 17:54:26:408 JST] 32222-14
61
- //[18-10-04 17:54:26:410 JST] 31853-2
62
- //[18-10-04 17:54:26:411 JST] 0.0
63
-
64
- ↑これを比較についかいたいけど、indexがないのが出てきて undefiendになってしまう...
65
-
66
- if(val[1] === editedData[index][0]) {
67
- val[1]この番号がある位置の行の取得、その行の指定した列にeditedData[index][1] ~ に格納しているデータをいれたい
68
- }
32
+ editedData.forEach(function(x) {
33
+ if (val[1] === x[0]) {
34
+
35
+ }
36
+ });
69
37
  });
70
38
  }
71
39
  ```
72
40
 
73
- ### 試したこと
74
-
75
- いろいろ試したんですけど、エラーが毎回乗り越えられなくて
76
- かなり苦戦してます。
77
-
78
41
  追記
79
42
  早速の回答ありがとうございます。
80
43
 
81
- Logger.log(editedData[index][0]);
82
- //[18-10-04 17:15:54:896 JST] 32222-14
83
- //[18-10-04 17:15:54:896 JST] 31853-2
84
- //[18-10-04 17:15:54:897 JST] 0.0
85
-
86
- こうすると、思った通りの動きなのですが、 editedData[index][0] が TypeError: undefined からプロパティ「0」を読み取れません。 と出ます!!
87
- masterSheetDataは1万件くらいありまして
88
- editedDataは0~20くらいです。
89
- そのなかでeditedData[index] このindexがundefinedになってしまうのですが
90
- どうすれば回避できるかわかれば教えて頂ければと思います。。
91
-
92
44
  →どういうタイミングでこの関数が動作し、そのとき、売り上げがたったものはどうしても複数にしないといけないのかなど要件を質問文に追記または編集していただけますか?
93
45
 
94
46
  こちらは、ボタンを押したときに走るようにしたいです。

9

読みやすく、データもきちんと確認しました

2018/10/04 09:11

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -16,25 +16,28 @@
16
16
 
17
17
  ```javascript
18
18
  function hoge() {
19
- var editedData = getEditData(); //売上データ、その日に売り上げが立った商品複数はいります。
20
- //[[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
21
- [18-10-04 17:22:02:426 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
22
- [18-10-04 17:22:02:427 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
23
- [18-10-04 17:22:02:428 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]....
19
+ var editedData = getEditData();
20
+ //[[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00
21
+ //GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
22
+ //[18-10-04 17:22:02:426 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0,
23
+ //Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
24
+ //[18-10-04 17:22:02:427 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0,
25
+ //Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
26
+ //[18-10-04 17:22:02:428 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0,
27
+ //Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]....
24
28
 
25
-
26
29
  var idColumnIndex = 6;
27
30
 
28
31
  var masterSheet = _getSheet('商品管理表');
29
32
  var rowIndex = 3;
30
33
  var colStartIndex = 1;
31
34
  var rowNum = masterSheet.getLastRow();
32
- var masterSheetData = masterSheet.getRange(rowIndex, colStartIndex, rowNum, 11).getValues(); //商品管理表のデータ
35
+ var masterSheetData = masterSheet.getRange(rowIndex, colStartIndex, rowNum, 11).getValues();
33
36
 
34
37
  var data = [];
35
38
 
39
+
36
40
  masterSheetData.forEach(function(val,index) {
37
- // Logger.log(val);
38
41
  //Logger.log(val[1]);
39
42
  //[18-10-04 16:13:36:098 JST] 32250-1
40
43
  //[18-10-04 16:13:36:098 JST] 32251-1
@@ -49,25 +52,19 @@
49
52
  //[18-10-04 16:13:36:104 JST] 32251-10
50
53
  //[18-10-04 16:13:36:105 JST] 32253-1
51
54
 
52
- Logger.log(editedData[index][0]);
53
- //[18-10-04 17:15:54:896 JST] 32222-14
54
- //[18-10-04 17:15:54:896 JST] 31853-2
55
- //[18-10-04 17:15:54:897 JST] 0.0
55
+ Logger.log(editedData);
56
+ //[["32222-14", 50000, (new Date(1538463600000)), false, "\u697d\u5929"], ["31853-2", 50000, (new Date(1538463600000)), false, "\u697d\u5929"], [0, 0, (new Date(-2209132800000)), false, "\u697d\u5929"]]
56
57
 
57
- //↑editedDataのデータをmasterSheetData のval[1]の番号と照らし合わせて
58
+ Logger.log(editedData[index][0]);
58
- //その番号の行を取得してその行の指定した列に入でいく
59
+ //undefined からプロパティ「0」読み取れませ
60
+ //[18-10-04 17:54:26:408 JST] 32222-14
61
+ //[18-10-04 17:54:26:410 JST] 31853-2
62
+ //[18-10-04 17:54:26:411 JST] 0.0
59
63
 
64
+ ↑これを比較についかいたいけど、indexがないのが出てきて undefiendになってしまう...
65
+
60
66
  if(val[1] === editedData[index][0]) {
61
- //TypeError: undefined からプロパティ「0」読み取ません。 と出ます!!
67
+ val[1]この番号がある位置の行の取得、その行の指定した列にeditedData[index][1] ~ に格納しているデータたい
62
- [18-10-04 16:57:06:023 JST] 32222-14
63
- [18-10-04 16:57:06:023 JST] 31853-2
64
- [18-10-04 16:57:06:024 JST] 0.0
65
- ↑でもこの形にしないと比較できないですよね、なぜエラーになるかわかりますでしょうか?
66
-
67
-
68
- たとえばここで、同じ番号の場合は、マスターデータのその番号の行と列を取得してデータをコピー(書き込みしたい)
69
- という処理をしたいのですが
70
- 配列操作がよくわからないです。
71
68
  }
72
69
  });
73
70
  }

8

さらに追記の追加

2018/10/04 08:58

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -87,7 +87,10 @@
87
87
  //[18-10-04 17:15:54:897 JST] 0.0
88
88
 
89
89
  こうすると、思った通りの動きなのですが、 editedData[index][0] が TypeError: undefined からプロパティ「0」を読み取れません。 と出ます!!
90
+ masterSheetDataは1万件くらいありまして
90
- でもログに出てきます。
91
+ editedData0~20くらいです。
92
+ そのなかでeditedData[index] このindexがundefinedになってしまうのですが
93
+ どうすれば回避できるかわかれば教えて頂ければと思います。。
91
94
 
92
95
  →どういうタイミングでこの関数が動作し、そのとき、売り上げがたったものはどうしても複数にしないといけないのかなど要件を質問文に追記または編集していただけますか?
93
96
 

7

質問への返答追加

2018/10/04 08:47

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
@@ -1,1 +1,1 @@
1
- GAS スプレットシート 商品管理 配列操作
1
+ GAS スプレットシート 商品管理 配列操作
body CHANGED
@@ -87,4 +87,11 @@
87
87
  //[18-10-04 17:15:54:897 JST] 0.0
88
88
 
89
89
  こうすると、思った通りの動きなのですが、 editedData[index][0] が TypeError: undefined からプロパティ「0」を読み取れません。 と出ます!!
90
- でもログには出てきます。
90
+ でもログには出てきます。
91
+
92
+ →どういうタイミングでこの関数が動作し、そのとき、売り上げがたったものはどうしても複数にしないといけないのかなど要件を質問文に追記または編集していただけますか?
93
+
94
+ こちらは、ボタンを押したときに走るようにしたいです。
95
+ 編集しながらとどっちが良いのかということにもなってくるとは思うのですが、
96
+ 売上表に番号や金額や日付などを入力しおわった段階で
97
+ マスターシートの番号を検索し、その番号の行の指定の列にコピーしたいです

6

ifの条件文の修正

2018/10/04 08:38

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -57,7 +57,7 @@
57
57
  //↑editedDataのデータをmasterSheetData のval[1]の番号と照らし合わせて
58
58
  //その番号の行を取得してその行の指定した列に入れ込んでいく
59
59
 
60
- if(val[1] === editedData[0][index]) {
60
+ if(val[1] === editedData[index][0]) {
61
61
  //TypeError: undefined からプロパティ「0」を読み取れません。 と出ます!!
62
62
  [18-10-04 16:57:06:023 JST] 32222-14
63
63
  [18-10-04 16:57:06:023 JST] 31853-2

5

editedData の中身について更新しました

2018/10/04 08:24

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -17,6 +17,12 @@
17
17
  ```javascript
18
18
  function hoge() {
19
19
  var editedData = getEditData(); //売上データ、その日に売り上げが立った商品複数はいります。
20
+ //[[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
21
+ [18-10-04 17:22:02:426 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
22
+ [18-10-04 17:22:02:427 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
23
+ [18-10-04 17:22:02:428 JST] [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天], [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]....
24
+
25
+
20
26
  var idColumnIndex = 6;
21
27
 
22
28
  var masterSheet = _getSheet('商品管理表');

4

editedRowData → editedData 、こちらは複数のデータがはいります。[[32222-1, , , ,][32222-1, , , ,][32222-1, , , ,] ]

2018/10/04 08:22

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ```javascript
18
18
  function hoge() {
19
- var editedData = getEditData(); //売上データ
19
+ var editedData = getEditData(); //売上データ、その日に売り上げが立った商品複数はいります。
20
20
  var idColumnIndex = 6;
21
21
 
22
22
  var masterSheet = _getSheet('商品管理表');
@@ -43,10 +43,10 @@
43
43
  //[18-10-04 16:13:36:104 JST] 32251-10
44
44
  //[18-10-04 16:13:36:105 JST] 32253-1
45
45
 
46
- Logger.log(editedData[index][0]);
46
+ Logger.log(editedData[index][0]);
47
- // [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天],
48
- // [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天],
49
- // [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
47
+ //[18-10-04 17:15:54:896 JST] 32222-14
48
+ //[18-10-04 17:15:54:896 JST] 31853-2
49
+ //[18-10-04 17:15:54:897 JST] 0.0
50
50
 
51
51
  //↑editedDataのデータをmasterSheetData のval[1]の番号と照らし合わせて
52
52
  //その番号の行を取得してその行の指定した列に入れ込んでいく
@@ -59,7 +59,7 @@
59
59
  ↑でもこの形にしないと比較できないですよね、なぜエラーになるかわかりますでしょうか?
60
60
 
61
61
 
62
- たとえばここで、同じ番号の場合は、
62
+ たとえばここで、同じ番号の場合は、マスターデータのその番号の行と列を取得してデータをコピー(書き込みしたい)
63
63
  という処理をしたいのですが
64
64
  配列操作がよくわからないです。
65
65
  }
@@ -70,4 +70,15 @@
70
70
  ### 試したこと
71
71
 
72
72
  いろいろ試したんですけど、エラーが毎回乗り越えられなくて
73
- かなり苦戦してます。
73
+ かなり苦戦してます。
74
+
75
+ 追記
76
+ 早速の回答ありがとうございます。
77
+
78
+ Logger.log(editedData[index][0]);
79
+ //[18-10-04 17:15:54:896 JST] 32222-14
80
+ //[18-10-04 17:15:54:896 JST] 31853-2
81
+ //[18-10-04 17:15:54:897 JST] 0.0
82
+
83
+ こうすると、思った通りの動きなのですが、 editedData[index][0] が TypeError: undefined からプロパティ「0」を読み取れません。 と出ます!!
84
+ でもログには出てきます。

3

細かい情報の追加

2018/10/04 08:20

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -52,8 +52,13 @@
52
52
  //その番号の行を取得してその行の指定した列に入れ込んでいく
53
53
 
54
54
  if(val[1] === editedData[0][index]) {
55
- //TypeError: undefined からプロパティ「0」を読み取れません。
55
+ //TypeError: undefined からプロパティ「0」を読み取れません。 と出ます!!
56
+ [18-10-04 16:57:06:023 JST] 32222-14
57
+ [18-10-04 16:57:06:023 JST] 31853-2
58
+ [18-10-04 16:57:06:024 JST] 0.0
59
+ ↑でもこの形にしないと比較できないですよね、なぜエラーになるかわかりますでしょうか?
56
60
 
61
+
57
62
  たとえばここで、同じ番号の場合は、
58
63
  という処理をしたいのですが
59
64
  配列操作がよくわからないです。

2

editedData[index][0]

2018/10/04 07:58

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -43,7 +43,7 @@
43
43
  //[18-10-04 16:13:36:104 JST] 32251-10
44
44
  //[18-10-04 16:13:36:105 JST] 32253-1
45
45
 
46
- Logger.log(editedData[0][index]);
46
+ Logger.log(editedData[index][0]);
47
47
  // [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天],
48
48
  // [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天],
49
49
  // [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]

1

editedData

2018/10/04 07:57

投稿

aym_mochi
aym_mochi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ```javascript
18
18
  function hoge() {
19
- var editedRowData = getEditData(); //売上データ
19
+ var editedData = getEditData(); //売上データ
20
20
  var idColumnIndex = 6;
21
21
 
22
22
  var masterSheet = _getSheet('商品管理表');
@@ -43,15 +43,15 @@
43
43
  //[18-10-04 16:13:36:104 JST] 32251-10
44
44
  //[18-10-04 16:13:36:105 JST] 32253-1
45
45
 
46
- Logger.log(editedRowData[0][index]);
46
+ Logger.log(editedData[0][index]);
47
47
  // [[32222-14, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天],
48
48
  // [31853-2, 50000.0, Tue Oct 02 16:00:00 GMT+09:00 2018, false, 楽天],
49
49
  // [0.0, 0.0, Sat Dec 30 17:00:00 GMT+09:00 1899, false, 楽天]]
50
50
 
51
- //↑editedRowDataのデータをmasterSheetData のval[1]の番号と照らし合わせて
51
+ //↑editedDataのデータをmasterSheetData のval[1]の番号と照らし合わせて
52
52
  //その番号の行を取得してその行の指定した列に入れ込んでいく
53
53
 
54
- if(val[1] === editedRowData[0][index]) {
54
+ if(val[1] === editedData[0][index]) {
55
55
  //TypeError: undefined からプロパティ「0」を読み取れません。
56
56
 
57
57
  たとえばここで、同じ番号の場合は、