回答編集履歴
5
修正
answer
CHANGED
@@ -38,15 +38,13 @@
|
|
38
38
|
|
39
39
|
下記は1行目に「M」というキーがある列の列番号(アルファベット)を取得する例になります。
|
40
40
|
```
|
41
|
-
LEFT(ADDRESS(1,MATCH("M",$
|
41
|
+
LEFT(ADDRESS(1, MATCH("M",MT5!$1:$1,0),4),LEN(ADDRESS(1,MATCH("M",MT5!$1:$1,0),4))-1)
|
42
42
|
```
|
43
|
-
※~~この場合、列番号をそのまま抽出する必要があるため、MATCHの範囲に名前付き範囲(HEADER)は使用できず、1行目のヘッダ範囲を絶対番地で指定する必要があります。~~
|
44
|
-
この場合、
|
45
|
-
・データの範囲より**前**に列を挿入してDATA及びHEADERの開始列を変えてしまうと、正しくデータを取得できません。
|
46
|
-
・DATA/HEADERの始点がA列よりも右である場合は、下記の式を調整する必要があります。
|
47
43
|
|
44
|
+
また、列番号をそのまま抽出する必要があるため、HEADERはヘッダとなる行全体(例:「シート名!$1:$1」)を参照している必要があります。
|
45
|
+
(そうしないと、指定範囲外に列を挿入した場合、うまくデータが取れません)
|
46
|
+
|
48
|
-
例(HEADERが
|
47
|
+
例(HEADERが範囲「MT5!$1:$1」、DATAが「MT5!$A$2:$Z$1000」の範囲で、ヘッダ列に「A」と「M」が入っている列を指定して抽出する場合):
|
49
48
|
```
|
50
49
|
=QUERY(DATA,"Select "&LEFT(ADDRESS(1,MATCH("A",HEADER,0),4),LEN(ADDRESS(1,MATCH("A",HEADER,0),4))-1)&","&LEFT(ADDRESS(1,MATCH("M",HEADER,0),4),LEN(ADDRESS(1,MATCH("M",HEADER,0),4))-1))
|
51
|
-
```
|
50
|
+
```
|
52
|
-
※この場合A列の左に空白セルを挿入するとデータがとれなくなる。
|
4
修正
answer
CHANGED
@@ -40,9 +40,13 @@
|
|
40
40
|
```
|
41
41
|
LEFT(ADDRESS(1,MATCH("M",$A$1:$EI$1,0),4),LEN(ADDRESS(1,MATCH("M",$A$1:$EI$1,0),4))-1)
|
42
42
|
```
|
43
|
-
※この場合、列番号をそのまま抽出する必要があるため、MATCHの範囲に名前付き範囲(HEADER)は使用できず、1行目のヘッダ範囲を絶対番地で指定する必要があります。
|
43
|
+
※~~この場合、列番号をそのまま抽出する必要があるため、MATCHの範囲に名前付き範囲(HEADER)は使用できず、1行目のヘッダ範囲を絶対番地で指定する必要があります。~~
|
44
|
+
この場合、
|
45
|
+
・データの範囲より**前**に列を挿入してDATA及びHEADERの開始列を変えてしまうと、正しくデータを取得できません。
|
46
|
+
・DATA/HEADERの始点がA列よりも右である場合は、下記の式を調整する必要があります。
|
44
47
|
|
45
|
-
例(「A」と「M」
|
48
|
+
例(HEADERがA1:Z1、DATAがA2からZ1000の範囲で、ヘッダ列に「A」と「M」が入っている列を指定して抽出する場合):
|
46
49
|
```
|
47
|
-
=QUERY(DATA,"Select "&LEFT(ADDRESS(1,MATCH("A",
|
48
|
-
```
|
50
|
+
=QUERY(DATA,"Select "&LEFT(ADDRESS(1,MATCH("A",HEADER,0),4),LEN(ADDRESS(1,MATCH("A",HEADER,0),4))-1)&","&LEFT(ADDRESS(1,MATCH("M",HEADER,0),4),LEN(ADDRESS(1,MATCH("M",HEADER,0),4))-1))
|
51
|
+
```
|
52
|
+
※この場合A列の左に空白セルを挿入するとデータがとれなくなる。
|
3
修正
answer
CHANGED
@@ -16,10 +16,13 @@
|
|
16
16
|
手順:
|
17
17
|
1.データ参照元シート(MT5シート)のA1:EI1を選択し、選択した範囲に「HEADER」という名前を付けます。
|
18
18
|
|
19
|
-
2.データ参照元(MT5シート)の実質的データ
|
19
|
+
2.データ参照元(MT5シート)の2行目以降の実質的データ範囲(A2:EI~)を選択し、選択した範囲に「DATA」という名前を付けます。
|
20
20
|
|
21
|
-
3.抽出を表示したいセルの数式に下記を
|
21
|
+
3.抽出を表示したいセルの数式に下記を設定します。
|
22
|
+
|
23
|
+
```
|
22
24
|
=Query(IMPORTRANGE("シートID","DATA"),"Select Col" & MATCH("A",HEADER) & ",Col" & MATCH("N",HEADER) & ",Col" & MATCH("EI",HEADER))
|
25
|
+
```
|
23
26
|
|
24
27
|
結果:
|
25
28
|
DATAの範囲内で列を挿入した場合、DATAの範囲は自動的に拡張されます。
|
2
修正
answer
CHANGED
@@ -33,13 +33,13 @@
|
|
33
33
|
大まかな考え方は上記と同様になりますが、IMPORTRANGEを使用しない場合、クエリ文はCol+数字ではなく、アルファベットで指定する必要があります。
|
34
34
|
アルファベットの列番号は、下記のような式で取得できます。
|
35
35
|
|
36
|
-
下記は1行目に「M」というキーがある列を
|
36
|
+
下記は1行目に「M」というキーがある列の列番号(アルファベット)を取得する例になります。
|
37
37
|
```
|
38
38
|
LEFT(ADDRESS(1,MATCH("M",$A$1:$EI$1,0),4),LEN(ADDRESS(1,MATCH("M",$A$1:$EI$1,0),4))-1)
|
39
39
|
```
|
40
40
|
※この場合、列番号をそのまま抽出する必要があるため、MATCHの範囲に名前付き範囲(HEADER)は使用できず、1行目のヘッダ範囲を絶対番地で指定する必要があります。
|
41
41
|
|
42
|
-
例:
|
42
|
+
例(「A」と「M」をヘッダ列のキーに指定して抽出する場合):
|
43
43
|
```
|
44
44
|
=QUERY(DATA,"Select "&LEFT(ADDRESS(1,MATCH("A",'MT5'!$A$1:$Z$1,0),4),LEN(ADDRESS(1,MATCH("A",'MT5'!$A$1:$Z$1,0),4))-1)&","&LEFT(ADDRESS(1,MATCH("M",'MT5'!$A$1:$Z$1,0),4),LEN(ADDRESS(1,MATCH("M",'MT5'!$A$1:$Z$1,0),4))-1))
|
45
45
|
```
|
1
修正
answer
CHANGED
@@ -23,10 +23,10 @@
|
|
23
23
|
|
24
24
|
結果:
|
25
25
|
DATAの範囲内で列を挿入した場合、DATAの範囲は自動的に拡張されます。
|
26
|
-
ヘッダ文字列を消したり変え
|
26
|
+
ヘッダ文字列を消したり変えたりしない限り、MATCH関数による位置取得は列の挿入に合わせて正常に行われるため、取得対象のデータは列挿入前から変わりません。
|
27
27
|
|
28
28
|
DATAの範囲外に列を挿入した場合、DATAの範囲は自動的に移動されます。
|
29
|
-
ヘッダ文字列を消したり変えない限り、MATCH関数による位置取得は変わらないため、取得対象のデータは列挿入前から変わりません。
|
29
|
+
ヘッダ文字列を消したり変えたりしない限り、MATCH関数による位置取得は変わらないため、取得対象のデータは列挿入前から変わりません。
|
30
30
|
|
31
31
|
----
|
32
32
|
+ IMPORTRANGEを使用しない場合:
|