回答編集履歴

3

参考例を追記しました。

2023/07/21 23:29

投稿

YellowGreen
YellowGreen

スコア774

test CHANGED
@@ -2,6 +2,8 @@
2
2
  質問者様に修正後のスクリプトの全体を示していただければと思いますが。
3
3
 
4
4
  例えば、このように全体をお示ししてみるとどうでしょうか。
5
+ ※ 回答を修正して、もう一つの参考例を追記しました。
6
+
5
7
  ```JavaScript
6
8
  function myFunction() {
7
9
  const ss = SpreadsheetApp..getActiveSpreadsheet();
@@ -23,3 +25,22 @@
23
25
  }
24
26
  ```
25
27
 
28
+ なお、今回は、
29
+ 一次元配列と二次元配列の変換がご質問の主旨でしたので上のような例としてますが、
30
+ 一次元配列は二次元配列への変換用に一時的に生成されているだけなので、
31
+ 最初から列を結合した二次元配列を生成することもできますので参考まで。
32
+
33
+ ```JavaScript
34
+ function myFunction() {
35
+ const ss = SpreadsheetApp.getActiveSpreadsheet();
36
+ const sheet = ss.getSheetByName('メインシート');
37
+ //C,D列を結合した二次元配列を生成
38
+ const nijigenText = sheet.getRange(2, 3, sheet.getLastRow() - 1, 2)
39
+ .getValues().map(v => [v.join('★')]);
40
+ //B列に値を記入
41
+ if (nijigenText.length > 0) {
42
+ sheet.getRange(2, 2, nijigenText.length, 1).setValues(nijigenText);
43
+ }
44
+ }
45
+ ```
46
+

2

変数名を修正しました。

2023/07/21 08:25

投稿

YellowGreen
YellowGreen

スコア774

test CHANGED
@@ -11,10 +11,10 @@
11
11
  //データの見出し行(1行目)を削除
12
12
  values.shift();
13
13
  //C,D列の値を★で結合した一次元配列に変換
14
- const ichjigenText = values.map(v => v.join('★'));
14
+ const ichijigenText = values.map(v => v.join('★'));
15
- console.log(ichjigenText);
15
+ console.log(ichijigenText);
16
16
  //二次元配列に変換
17
- const nijigenText = ichjigenText.map(v => [v]);
17
+ const nijigenText = ichijigenText.map(v => [v]);
18
18
  console.log(nijigenText);
19
19
  //B列(2行目以降)に値を記入
20
20
  if (nijigenText.length > 0) {

1

質問者様の環境に併せて変更してみました。

2023/07/21 08:18

投稿

YellowGreen
YellowGreen

スコア774

test CHANGED
@@ -4,20 +4,21 @@
4
4
  例えば、このように全体をお示ししてみるとどうでしょうか。
5
5
  ```JavaScript
6
6
  function myFunction() {
7
- const ss = SpreadsheetApp.openById(SS_ID);
8
- //const ss = SpreadsheetApp..getActiveSpreadsheet();
7
+ const ss = SpreadsheetApp..getActiveSpreadsheet();
9
- const sheet = ss.getSheetByName('シート1');
8
+ const sheet = ss.getSheetByName('メインシート');
10
9
  //C,D列の値を取得
11
10
  const values = sheet.getRange(1, 3, sheet.getLastRow(), 2).getValues();
11
+ //データの見出し行(1行目)を削除
12
+ values.shift();
12
- //C,D列の値を結合した一次元配列に変換
13
+ //C,D列の値を★で結合した一次元配列に変換
13
- const ichjigenText = values.map(v => v.join(''));
14
+ const ichjigenText = values.map(v => v.join(''));
14
15
  console.log(ichjigenText);
15
16
  //二次元配列に変換
16
17
  const nijigenText = ichjigenText.map(v => [v]);
17
18
  console.log(nijigenText);
18
- //B列に値を記入
19
+ //B列(2行目以降)に値を記入
19
20
  if (nijigenText.length > 0) {
20
- sheet.getRange(1, 2, nijigenText.length, 1).setValues(nijigenText);
21
+ sheet.getRange(2, 2, nijigenText.length, 1).setValues(nijigenText);
21
22
  }
22
23
  }
23
24
  ```