回答編集履歴

1

修正

2021/05/19 04:33

投稿

Tatsunosuke
Tatsunosuke

スコア599

test CHANGED
@@ -1,3 +1,155 @@
1
+ 書いてみました!
2
+
3
+
4
+
5
+ [検索]と[結果]の名前のシートの作成お願いします。
6
+
7
+ 検索シートの配列はこれ↓
8
+
9
+ ![イメージ説明](82239c857f6b445f3418c58fa07ab8d6.png)
10
+
11
+
12
+
13
+ これで検索値を入れて実行していただければ、
14
+
15
+ 結果シートに出力されると思います。
16
+
17
+
18
+
19
+ 200シートとなるとちょっと時間がかかるかも知れません。
20
+
21
+
22
+
23
+ ```gas
24
+
25
+
26
+
27
+ function myfunc() {
28
+
29
+
30
+
31
+ var ss = SpreadsheetApp.openById('***'); //[todo]スプレッドシートのID
32
+
33
+ var sheetList =ss.getSheets() // 全シートの取得
34
+
35
+
36
+
37
+ //検索用のシート
38
+
39
+ var searchSheet = ss.getSheetByName('検索');
40
+
41
+  var search = searchSheet.getDataRange().getValues()
42
+
43
+ //検索値の並び替え
44
+
45
+  var searchTrans = []
46
+
47
+ search.forEach(e=>{
48
+
49
+ if(e[0]!="検索したい数字"){
50
+
51
+ searchTrans.push(e[0])
52
+
53
+ }
54
+
55
+ })
56
+
57
+
58
+
59
+  
60
+
61
+ //結果入れる用の連想配列
62
+
63
+ var results = {}
64
+
65
+  
66
+
67
+  //シートを一つ一つ確認
68
+
69
+ for(var sheet of sheetList){
70
+
71
+
72
+
73
+ //検索シートと結果シートを除外
74
+
75
+ if(sheet.getSheetName()!="検索"&&sheet.getSheetName()!="結果"){
76
+
77
+
78
+
79
+ //全データを取得
80
+
81
+ var values = sheet.getDataRange().getValues()
82
+
83
+ values.forEach(e=>{
84
+
85
+      
86
+
87
+      //検索したい単語があるかチェック
88
+
89
+ var index = searchTrans.indexOf(e[0])
90
+
91
+ if(index != -1 ){
92
+
93
+ if(!results[e[0]]){
94
+
95
+ results[e[0]] = []
96
+
97
+ }
98
+
99
+ results[e[0]].push([e[1],sheet.getSheetName()])
100
+
101
+ }
102
+
103
+
104
+
105
+ })
106
+
107
+ }
108
+
109
+ }
110
+
111
+
112
+
113
+ //検索結果を貼り付けられる形式に変換
114
+
115
+ var setValues = [["検索単語","単語","シート名"]]
116
+
117
+ for(var word in results){
118
+
119
+ setValues.push([word,"",""])
120
+
121
+ results[word].forEach(e =>{
122
+
123
+ setValues.push(["",e[0],e[1]])
124
+
125
+ })
126
+
127
+ }
128
+
129
+   
130
+
131
+   //結果シートへ貼り付け
132
+
133
+ var setSheet = ss.getSheetByName('結果');
134
+
135
+ setSheet.clear()
136
+
137
+ setSheet.getRange(1,1,setValues.length,setValues[0].length).setValues(setValues)
138
+
139
+
140
+
141
+ }
142
+
143
+
144
+
145
+
146
+
147
+ ```
148
+
149
+
150
+
151
+ ---
152
+
1
153
  ちょっと僕の理解がずれているかもしれませんが、
2
154
 
3
155