回答編集履歴

7

 

2023/02/27 13:11

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- ・いずれも、必ず検索対象が検索範囲に1つ以上存在するものとしかつ、最初に見つかった行の行番号のみを返すとします。
1
+ ・いずれも、検索対象が複数存在する場合は、最初に見つかった行の行番号のみを返すとします。
2
2
 
3
3
  ① for文を使います。
4
4
  ```js
@@ -12,7 +12,11 @@
12
12
  break;
13
13
  }
14
14
  }
15
+ if (row === data.length) {
16
+ console.log('見つかりませんでした');
17
+ } else {
15
- console.log(row + 1);
18
+ console.log(row + 1);
19
+ }
16
20
  }
17
21
  ```
18
22
  ② A列とB列の文字列を連結して検索します。行番号をindexOfで返します。
@@ -22,7 +26,11 @@
22
26
  var sheet = ss.getSheetByName("シート1");
23
27
  var data = sheet.getRange(1, 1, 7, 2).getValues();
24
28
  var select = data.map(v => v[0] + v[1]).indexOf("B支店" + "庶務課");
29
+ if (select === -1) {
30
+ console.log('見つかりませんでした');
31
+ } else {
25
- console.log(select + 1);
32
+ console.log(select + 1);
33
+ }
26
34
  }
27
35
  ```
28
36
 
@@ -35,6 +43,10 @@
35
43
  var sheet = ss.getSheetByName("シート1");
36
44
  var data = sheet.getRange(1, 1, 7, 2).getValues();
37
45
  var select = data.map((val, idx) => ({ val, idx })).filter(v => v.val[0] == "B支店" && v.val[1] == "庶務課");
46
+ if (select.length === 0) {
47
+ console.log('見つかりませんでした。')
48
+ } else {
38
- console.log(select[0].idx + 1);
49
+ console.log(select[0].idx + 1);
50
+ }
39
51
  }
40
52
  ```

6

 

2023/02/27 13:01

投稿

退会済みユーザー
test CHANGED
@@ -1,7 +1,23 @@
1
- いずれも、最初に見つかった行の行番号のみを返すとします
1
+ いずれも、必ず検索対象が検索範囲に1つ以上存在するものとし、かつ、最初に見つかった行の行番号のみを返すとします
2
+
2
- A列とB列の字列連結して検索します。行番号をindexOfで返します。
3
+ for文を使います。
3
4
  ```js
4
5
  function fn1() {
6
+ var ss = SpreadsheetApp.getActiveSpreadsheet();
7
+ var sheet = ss.getSheetByName("シート1");
8
+ var data = sheet.getRange(1, 1, 7, 2).getValues();
9
+ let row = 0
10
+ for(; row < data.length; row++) {
11
+ if (data[row][0] == "B支店" && data[row][1] == "庶務課") {
12
+ break;
13
+ }
14
+ }
15
+ console.log(row + 1);
16
+ }
17
+ ```
18
+ ② A列とB列の文字列を連結して検索します。行番号をindexOfで返します。
19
+ ```js
20
+ function fn2() {
5
21
  var ss = SpreadsheetApp.getActiveSpreadsheet();
6
22
  var sheet = ss.getSheetByName("シート1");
7
23
  var data = sheet.getRange(1, 1, 7, 2).getValues();
@@ -10,11 +26,11 @@
10
26
  }
11
27
  ```
12
28
 
13
- だと「B支店/庶務課」と「B/支店庶務課」「「B支/店庶務課」の区別がつかないんじゃ?という疑問をもし持たれる場合は、
29
+ ②だと「B支店/庶務課」と「B/支店庶務課」「「B支/店庶務課」の区別がつかないんじゃ?という疑問をもし持たれる場合は、
14
30
  map とfilterを使うやり方があります。
15
31
  (mapで行番号をつけたオブジェクトにしておいて、filterで抽出した後、オブジェクトから行番号を取得する)
16
32
  ```js
17
- function fn2() {
33
+ function fn3() {
18
34
  var ss = SpreadsheetApp.getActiveSpreadsheet();
19
35
  var sheet = ss.getSheetByName("シート1");
20
36
  var data = sheet.getRange(1, 1, 7, 2).getValues();

5

 

2023/02/27 12:55

投稿

退会済みユーザー
test CHANGED
@@ -10,7 +10,7 @@
10
10
  }
11
11
  ```
12
12
 
13
- ②①だと「B支店/庶務課」と「B/支店庶務課」の区別がつかないんじゃ?という疑問をもし持たれる場合は、
13
+ ②①だと「B支店/庶務課」と「B/支店庶務課」「「B支/店庶務課」の区別がつかないんじゃ?という疑問をもし持たれる場合は、
14
14
  map とfilterを使うやり方があります。
15
15
  (mapで行番号をつけたオブジェクトにしておいて、filterで抽出した後、オブジェクトから行番号を取得する)
16
16
  ```js

4

 

2023/02/27 12:55

投稿

退会済みユーザー
test CHANGED
@@ -5,12 +5,12 @@
5
5
  var ss = SpreadsheetApp.getActiveSpreadsheet();
6
6
  var sheet = ss.getSheetByName("シート1");
7
7
  var data = sheet.getRange(1, 1, 7, 2).getValues();
8
- var select = data.map(v => v[0] + v[1]).indexOf("B支店" + "務課");
8
+ var select = data.map(v => v[0] + v[1]).indexOf("B支店" + "務課");
9
9
  console.log(select + 1);
10
10
  }
11
11
  ```
12
12
 
13
- ②①だと「A支店/庶務課」と「A/支店庶務課」の区別がつかないという場合は、
13
+ ②①だと「B支店/庶務課」と「B/支店庶務課」の区別がつかないんじゃ?という疑問をもし持たれる場合は、
14
14
  map とfilterを使うやり方があります。
15
15
  (mapで行番号をつけたオブジェクトにしておいて、filterで抽出した後、オブジェクトから行番号を取得する)
16
16
  ```js
@@ -18,7 +18,7 @@
18
18
  var ss = SpreadsheetApp.getActiveSpreadsheet();
19
19
  var sheet = ss.getSheetByName("シート1");
20
20
  var data = sheet.getRange(1, 1, 7, 2).getValues();
21
- var select = data.map((val, idx) => ({ val, idx })).filter(v => v.val[0] == "B支店" && v.val[1] == "務課");
21
+ var select = data.map((val, idx) => ({ val, idx })).filter(v => v.val[0] == "B支店" && v.val[1] == "務課");
22
22
  console.log(select[0].idx + 1);
23
23
  }
24
24
  ```

3

 

2023/02/27 12:45

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
1
  (いずれも、最初に見つかった行の行番号のみを返すとします)
2
- ① A列とB列の文字列を連結して検索します。
2
+ ① A列とB列の文字列を連結して検索します。行番号をindexOfで返します。
3
3
  ```js
4
4
  function fn1() {
5
5
  var ss = SpreadsheetApp.getActiveSpreadsheet();
@@ -12,6 +12,7 @@
12
12
 
13
13
  ②①だと「A支店/庶務課」と「A/支店庶務課」の区別がつかない、という場合は、
14
14
  map とfilterを使うやり方があります。
15
+ (mapで行番号をつけたオブジェクトにしておいて、filterで抽出した後、オブジェクトから行番号を取得する)
15
16
  ```js
16
17
  function fn2() {
17
18
  var ss = SpreadsheetApp.getActiveSpreadsheet();

2

 

2023/02/27 12:42

投稿

退会済みユーザー
test CHANGED
@@ -1,13 +1,13 @@
1
1
  (いずれも、最初に見つかった行の行番号のみを返すとします)
2
2
  ① A列とB列の文字列を連結して検索します。
3
3
  ```js
4
- function fn1(){
4
+ function fn1() {
5
5
  var ss = SpreadsheetApp.getActiveSpreadsheet();
6
6
  var sheet = ss.getSheetByName("シート1");
7
- var data = sheet.getRange(1,1,7,2).getValues();
7
+ var data = sheet.getRange(1, 1, 7, 2).getValues();
8
- var select = data.map(v=> v[0]+v[1]).indexOf("B支店"+"務課");
8
+ var select = data.map(v => v[0] + v[1]).indexOf("B支店" + "務課");
9
- console.log(select);
9
+ console.log(select + 1);
10
- }
10
+ }
11
11
  ```
12
12
 
13
13
  ②①だと「A支店/庶務課」と「A/支店庶務課」の区別がつかない、という場合は、

1

 

2023/02/27 12:41

投稿

退会済みユーザー
test CHANGED
@@ -17,7 +17,7 @@
17
17
  var ss = SpreadsheetApp.getActiveSpreadsheet();
18
18
  var sheet = ss.getSheetByName("シート1");
19
19
  var data = sheet.getRange(1, 1, 7, 2).getValues();
20
- var select = data.map((val, idx) => ({ val, idx })).filter(v => v.val[0] == "B支店" && v.val[1] == "総務課")
20
+ var select = data.map((val, idx) => ({ val, idx })).filter(v => v.val[0] == "B支店" && v.val[1] == "総務課");
21
21
  console.log(select[0].idx + 1);
22
22
  }
23
23
  ```