回答編集履歴
22
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
まず、配列/配列数式について簡単に説明します。
|
4
4
|
|
5
|
-
配列とは、簡単にいえば、**複数のセルを1つの範囲としてまとめたもの**です。
|
5
|
+
配列とは、簡単にいえば、**複数のセルを1つの範囲としてまとめたもの**です。
|
6
6
|
そして配列数式とは、配列を作る/扱うための数式表現、または数式そのものを指します。
|
7
7
|
|
8
8
|
肌感覚で配列数式をつかむため、一番簡単な配列を作ってみましょう。
|
21
test
CHANGED
@@ -168,6 +168,7 @@
|
|
168
168
|
→配列どうしの掛け算を意味しています。
|
169
169
|
左の配列の各要素と、右の配列の(対応する)各要素の掛け算の結果が、新たな配列として返ってきます。
|
170
170
|
=ROW($C$1:$C$494)は1ではなく、行番号の配列になります。
|
171
|
+
|
171
172
|
---
|
172
173
|
|
173
174
|
|
20
test
CHANGED
@@ -167,7 +167,7 @@
|
|
167
167
|
> ($C$1:$C$494=$T$2)*ROW($C$1:$C$494) の*は何を意味しますか?=ROW($C$1:$C$494)は1です。
|
168
168
|
→配列どうしの掛け算を意味しています。
|
169
169
|
左の配列の各要素と、右の配列の(対応する)各要素の掛け算の結果が、新たな配列として返ってきます。
|
170
|
-
|
170
|
+
=ROW($C$1:$C$494)は1ではなく、行番号の配列になります。
|
171
171
|
---
|
172
172
|
|
173
173
|
|
19
test
CHANGED
@@ -87,7 +87,7 @@
|
|
87
87
|
### 1-1-3. (C1:C494=T2)*ROW(C1:C494)
|
88
88
|
|
89
89
|
(C1:C494=T2)*ROW(C1:C494) という数式は、
|
90
|
-
「配列
|
90
|
+
「配列どうしを掛け算して、その結果を新たな配列として返す」という処理を行っています。(1.で申し上げた通り、配列に対しては四則演算処理が可能)
|
91
91
|
|
92
92
|
つまり
|
93
93
|
**TRUE,FALSE が並んだ配列**(1-1-1)× **行番号の配列** (1-1-2)
|
18
test
CHANGED
@@ -87,7 +87,7 @@
|
|
87
87
|
### 1-1-3. (C1:C494=T2)*ROW(C1:C494)
|
88
88
|
|
89
89
|
(C1:C494=T2)*ROW(C1:C494) という数式は、
|
90
|
-
「配列
|
90
|
+
「配列動詞を掛け算して、その結果を新たな配列として返す」という処理を行っています。(1.で申し上げた通り、配列に対しては四則演算処理が可能)
|
91
91
|
|
92
92
|
つまり
|
93
93
|
**TRUE,FALSE が並んだ配列**(1-1-1)× **行番号の配列** (1-1-2)
|
17
test
CHANGED
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
たとえば適当なセルに「=(C1:C494=T2)」を記入すると、
|
76
76
|
下の図のように、
|
77
|
-
+ 配列「C1:C494」のうち、T2(=1)と等しいセルは **TRUE**, 異なるセルは **FALSE** と
|
77
|
+
+ 配列「C1:C494」内の各セルのうち、T2(=1)と等しいセルは **TRUE**, 異なるセルは **FALSE** として並べた**配列**
|
78
78
|
が返ってきていることが分かります。
|
79
79
|
|
80
80
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-03-05/14fb8421-d370-4339-83f0-c36f5a59f147.png)
|
16
test
CHANGED
@@ -148,7 +148,7 @@
|
|
148
148
|
質問者さんの記載に沿って答えると下記のようになります。
|
149
149
|
```text
|
150
150
|
=IF(COUNTIF($C:$C,$T$2)>=ROW(S1) *IFの条件マッチした数で判断→【OK】
|
151
|
-
,LARGE( *IF 真の場合で行番号を算出 →【
|
151
|
+
,LARGE( *IF 真の場合で行番号を算出 →【指定した第1引数の配列を、大きい順に並べたとき。第2引数に指定した順位のセルを返す関数】
|
152
152
|
INDEX( **これが解りません? →【実は不要】
|
153
153
|
($C$1:$C$494=$T$2)*ROW($C$1:$C$494) *範囲?→【C列のうち、T2セルと同じ値となっている行の行番号の配列。ただしT2セルと異なる値のセルはゼロ】
|
154
154
|
,,) *範囲全体? →【OK】
|
15
test
CHANGED
@@ -128,7 +128,7 @@
|
|
128
128
|
|
129
129
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-03-05/537197ec-e062-4f59-9172-1eaccc890cf0.png)
|
130
130
|
|
131
|
-
よって、これをLARGE関数と組み合わせた「 LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S1)+1)」という数式を縦にコピペすると
|
131
|
+
よって、これをLARGE関数と組み合わせた「 LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S1)+1)」という数式(※1)を縦にコピペ(※2)すると
|
132
132
|
|
133
133
|
+ 1行目: 「LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S**1**)+1)」
|
134
134
|
→<1>の配列のうち、大きい順から3番目の数 =3
|
@@ -138,7 +138,8 @@
|
|
138
138
|
→<1>の配列のうち、大きい順から1番目の数 =10
|
139
139
|
|
140
140
|
が抽出されることになります。
|
141
|
+
(※1:「<1>」というのは、上で説明した「0,0,3,0,0,0,0,0,9,10,.....」という配列のことです)
|
141
|
-
(
|
142
|
+
(※2:この数式自体は配列を返す数式ではなく、単純な計算結果しか返さないので、縦に数式をコピペする必要あり)
|
142
143
|
|
143
144
|
4番目以降は、0からマイナス値になっていますが、数式の前半の「COUNTIF($C:$C,$T$2)>=ROW(S1)」の条件に当てはまらないので、最終的にはIF文により 空欄("")が表示されることになります。
|
144
145
|
|
14
test
CHANGED
@@ -130,9 +130,12 @@
|
|
130
130
|
|
131
131
|
よって、これをLARGE関数と組み合わせた「 LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S1)+1)」という数式を縦にコピペすると
|
132
132
|
|
133
|
+
+ 1行目: 「LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S**1**)+1)」
|
133
|
-
|
134
|
+
→<1>の配列のうち、大きい順から3番目の数 =3
|
135
|
+
+ 2行目: 「LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S**2**)+1)」
|
134
|
-
|
136
|
+
→<1>の配列のうち、大きい順から2番目の数 =9
|
137
|
+
+ 3行目: 「LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S**3**)+1)」
|
135
|
-
|
138
|
+
→<1>の配列のうち、大きい順から1番目の数 =10
|
136
139
|
|
137
140
|
が抽出されることになります。
|
138
141
|
(注:この数式自体は配列を返す数式ではなく、単純な計算結果しか返さないので、縦に数式をコピペする必要あり)
|
13
修正
test
CHANGED
@@ -146,7 +146,7 @@
|
|
146
146
|
=IF(COUNTIF($C:$C,$T$2)>=ROW(S1) *IFの条件マッチした数で判断→【OK】
|
147
147
|
,LARGE( *IF 真の場合で行番号を算出 →【OK】
|
148
148
|
INDEX( **これが解りません? →【実は不要】
|
149
|
-
($C$1:$C$494=$T$2)*ROW($C$1:$C$494) *範囲?→【C列のうち、T2セルと同じ値の配列。ただしT2セルと異なる値のセルはゼロ】
|
149
|
+
($C$1:$C$494=$T$2)*ROW($C$1:$C$494) *範囲?→【C列のうち、T2セルと同じ値となっている行の行番号の配列。ただしT2セルと異なる値のセルはゼロ】
|
150
150
|
,,) *範囲全体? →【OK】
|
151
151
|
,COUNTIF($C:$C,$T$2)-ROW(S1)+1 *LARGEの位置 →【OK】
|
152
152
|
)
|
12
test
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
> A1セルに=D3&"!"、B1セルに=E3&"!"、C1セルに=F3&"!"... と入力
|
31
31
|
の必要があり、その後、末尾に「!」をつけたいと思ったら
|
32
32
|
> A1セルを=D3&"!"、B1セルを=E3&"!"、C1セルを=F3&"!"... に変える
|
33
|
-
というように1個1個の
|
33
|
+
というように1個1個の数式を修正していかなければなりません。
|
34
34
|
|
35
35
|
配列を使うことで、複数のセル範囲に含まれる**各セルに対して**同じ処理を一括して行うことができることが分かります。
|
36
36
|
|
11
test
CHANGED
@@ -119,22 +119,25 @@
|
|
119
119
|
|
120
120
|
## 2. LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S1)+1)
|
121
121
|
|
122
|
+
LARGE 関数:
|
122
|
-
|
123
|
+
たとえば LARGE(X, Y) とすると、下記の値を返します。
|
123
124
|
+ 配列X を**大きい順**に並べ変えた配列のうち、Y 番目の値
|
124
125
|
|
125
|
-
|
126
|
+
一方、「=COUNTIF($C:$C,T$$2)-ROW(S1)+1」 を適当なセルに縦にコピペしていくと、
|
126
|
-
下の図のように、「C列のうちT2の値の個数
|
127
|
+
下の図のように、「C列のうちT2の値の個数=3で始まり、1ずつ小さくなっていく数」になっています。
|
127
128
|
|
128
129
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-03-05/537197ec-e062-4f59-9172-1eaccc890cf0.png)
|
129
130
|
|
130
|
-
よって、これをLARGE関数と組み合わせると
|
131
|
+
よって、これをLARGE関数と組み合わせた「 LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S1)+1)」という数式を縦にコピペすると
|
132
|
+
|
131
133
|
+ 1行目は、<1>の配列のうち、大きい順から3番目の数 =3
|
132
134
|
+ 2行目は、<1>の配列のうち、大きい順から2番目の数 =9
|
133
135
|
+ 3行目は、<1>の配列のうち、大きい順から1番目の数 =10
|
136
|
+
|
134
137
|
が抽出されることになります。
|
135
138
|
(注:この数式自体は配列を返す数式ではなく、単純な計算結果しか返さないので、縦に数式をコピペする必要あり)
|
136
139
|
|
137
|
-
4番目以降は、0からマイナス値になっていますが、
|
140
|
+
4番目以降は、0からマイナス値になっていますが、数式の前半の「COUNTIF($C:$C,$T$2)>=ROW(S1)」の条件に当てはまらないので、最終的にはIF文により 空欄("")が表示されることになります。
|
138
141
|
|
139
142
|
---
|
140
143
|
|
10
test
CHANGED
@@ -161,3 +161,15 @@
|
|
161
161
|
→配列どうしの掛け算を意味しています。
|
162
162
|
左の配列の各要素と、右の配列の(対応する)各要素の掛け算の結果が、新たな配列として返ってきます。
|
163
163
|
|
164
|
+
---
|
165
|
+
|
166
|
+
|
167
|
+
・動作確認環境
|
168
|
+
Microsoft Excel バージョン2301(Microsoft 365)
|
169
|
+
OS:Windows 10 Home バージョン 22H2
|
170
|
+
|
171
|
+
|
172
|
+
・回答を作成するにあたって参考にした資料
|
173
|
+
[INDEX 関数 - Microsoft サポート](https://support.microsoft.com/ja-jp/office/index-%E9%96%A2%E6%95%B0-a5dcf0dd-996d-40a4-a822-b56b061328bd)
|
174
|
+
[配列数式のガイドラインと例 - Microsoft サポート](https://support.microsoft.com/ja-jp/office/%E9%85%8D%E5%88%97%E6%95%B0%E5%BC%8F%E3%81%AE%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%A8%E4%BE%8B-7d94a64e-3ff3-4686-9372-ecfd5caa57c7)
|
175
|
+
[Excelまたは配列を返す関数 - Microsoft サポート](https://support.microsoft.com/ja-jp/office/excel%E3%81%BE%E3%81%9F%E3%81%AF%E9%85%8D%E5%88%97%E3%82%92%E8%BF%94%E3%81%99%E9%96%A2%E6%95%B0-7d1970e2-cbaa-4279-b59c-b9dd3900fc69)
|
9
test
CHANGED
@@ -134,7 +134,7 @@
|
|
134
134
|
が抽出されることになります。
|
135
135
|
(注:この数式自体は配列を返す数式ではなく、単純な計算結果しか返さないので、縦に数式をコピペする必要あり)
|
136
136
|
|
137
|
-
4番目以降は、マイナスになっていますが、最終的には数式の前半の「COUNTIF($C:$C,$T$2)>=ROW(S1)」の条件に当てはまらないので、IF文により ""
|
137
|
+
4番目以降は、0からマイナス値になっていますが、最終的には数式の前半の「COUNTIF($C:$C,$T$2)>=ROW(S1)」の条件に当てはまらないので、IF文により 空欄("")が表示されることになります。
|
138
138
|
|
139
139
|
---
|
140
140
|
|
8
test
CHANGED
@@ -122,9 +122,7 @@
|
|
122
122
|
LARGE 関数は、たとえばLARGE(X, Y)とすると、下記を返します。
|
123
123
|
+ 配列X を**大きい順**に並べ変えた配列のうち、Y 番目の値
|
124
124
|
|
125
|
-
LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S1)+1) のうち
|
126
|
-
|
127
|
-
|
125
|
+
試しに「=COUNTIF($C:$C,T$$2)-ROW(S1)+1」 を適当なセルに縦にコピペしていくと、
|
128
126
|
下の図のように、「C列のうちT2の値の個数(=3個)から逆順に並べた数」になっています。
|
129
127
|
|
130
128
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-03-05/537197ec-e062-4f59-9172-1eaccc890cf0.png)
|
@@ -133,9 +131,10 @@
|
|
133
131
|
+ 1行目は、<1>の配列のうち、大きい順から3番目の数 =3
|
134
132
|
+ 2行目は、<1>の配列のうち、大きい順から2番目の数 =9
|
135
133
|
+ 3行目は、<1>の配列のうち、大きい順から1番目の数 =10
|
134
|
+
が抽出されることになります。
|
136
|
-
|
135
|
+
(注:この数式自体は配列を返す数式ではなく、単純な計算結果しか返さないので、縦に数式をコピペする必要あり)
|
137
136
|
|
138
|
-
4番目以降は、数式の前半の「COUNTIF($C:$C,$T$2)>=ROW(S1)」の条件に当てはまらないので、IF文により "" になります。
|
137
|
+
4番目以降は、マイナスになっていますが、最終的には数式の前半の「COUNTIF($C:$C,$T$2)>=ROW(S1)」の条件に当てはまらないので、IF文により "" になります。
|
139
138
|
|
140
139
|
---
|
141
140
|
|
7
test
CHANGED
@@ -123,14 +123,17 @@
|
|
123
123
|
+ 配列X を**大きい順**に並べ変えた配列のうち、Y 番目の値
|
124
124
|
|
125
125
|
LARGE(<1>, COUNTIF($C:$C,$T$2)-ROW(S1)+1) のうち
|
126
|
+
|
127
|
+
2番目にある「COUNTIF($C:$C,T$$2)-ROW(S1)+1」 を試しに縦にコピペすると、
|
126
|
-
|
128
|
+
下の図のように、「C列のうちT2の値の個数(=3個)から逆順に並べた数」になっています。
|
127
129
|
|
128
130
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-03-05/537197ec-e062-4f59-9172-1eaccc890cf0.png)
|
131
|
+
|
129
132
|
よって、これをLARGE関数と組み合わせると
|
130
133
|
+ 1行目は、<1>の配列のうち、大きい順から3番目の数 =3
|
131
134
|
+ 2行目は、<1>の配列のうち、大きい順から2番目の数 =9
|
132
135
|
+ 3行目は、<1>の配列のうち、大きい順から1番目の数 =10
|
133
|
-
が抽出されることになります。
|
136
|
+
が抽出されることになります。(注:この数式自体は配列を返す数式ではなく、単純な計算結果しか返さないので、縦に数式をコピペする必要あり)
|
134
137
|
|
135
138
|
4番目以降は、数式の前半の「COUNTIF($C:$C,$T$2)>=ROW(S1)」の条件に当てはまらないので、IF文により "" になります。
|
136
139
|
|
@@ -150,11 +153,12 @@
|
|
150
153
|
```
|
151
154
|
|
152
155
|
> INDEX()はLARGE()の範囲ですが理解できません。
|
153
|
-
上記のように少なくとも最新のExcelではINDEXで囲まなくても動作します。
|
156
|
+
→上記のように少なくとも最新のExcelではINDEXで囲まなくても動作します。おそらく過去の互換性のためか、カスタマイズのためでしょう。
|
154
157
|
|
155
158
|
> ($C$1:$C$494=$T$2) の=は何を意味しますか?範囲($C$1:$C$494)を制約している?
|
156
|
-
|
159
|
+
→配列の各要素が $T$2 セルの値と「等しいかどうか」を比較しています。最終的には比較した結果(TRUE/FALSE)の配列を返しています。
|
157
160
|
|
158
161
|
> ($C$1:$C$494=$T$2)*ROW($C$1:$C$494) の*は何を意味しますか?=ROW($C$1:$C$494)は1です。
|
159
|
-
配列どうしの掛け算を意味しています。
|
162
|
+
→配列どうしの掛け算を意味しています。
|
163
|
+
左の配列の各要素と、右の配列の(対応する)各要素の掛け算の結果が、新たな配列として返ってきます。
|
160
164
|
|
6
test
CHANGED
@@ -150,10 +150,10 @@
|
|
150
150
|
```
|
151
151
|
|
152
152
|
> INDEX()はLARGE()の範囲ですが理解できません。
|
153
|
-
上記のように少なくとも最新のExcelではINDEX
|
153
|
+
上記のように少なくとも最新のExcelではINDEXで囲まなくても動作します。
|
154
154
|
|
155
155
|
> ($C$1:$C$494=$T$2) の=は何を意味しますか?範囲($C$1:$C$494)を制約している?
|
156
|
-
「等しいかどうか」を比較しています。
|
156
|
+
左の配列が$T$2セルの値と「等しいかどうか」を比較しています。最終的には比較した結果(TRUE/FALSE)の配列を返しています。
|
157
157
|
|
158
158
|
> ($C$1:$C$494=$T$2)*ROW($C$1:$C$494) の*は何を意味しますか?=ROW($C$1:$C$494)は1です。
|
159
159
|
配列どうしの掛け算を意味しています。
|
5
test
CHANGED
@@ -148,5 +148,13 @@
|
|
148
148
|
,"" *IF 偽 ブランクを記載 →【OK】
|
149
149
|
)
|
150
150
|
```
|
151
|
-
---
|
152
151
|
|
152
|
+
> INDEX()はLARGE()の範囲ですが理解できません。
|
153
|
+
上記のように少なくとも最新のExcelではINDEXがなくとも動作します。
|
154
|
+
|
155
|
+
> ($C$1:$C$494=$T$2) の=は何を意味しますか?範囲($C$1:$C$494)を制約している?
|
156
|
+
「等しいかどうか」を比較しています。
|
157
|
+
|
158
|
+
> ($C$1:$C$494=$T$2)*ROW($C$1:$C$494) の*は何を意味しますか?=ROW($C$1:$C$494)は1です。
|
159
|
+
配列どうしの掛け算を意味しています。
|
160
|
+
|
4
test
CHANGED
@@ -62,13 +62,15 @@
|
|
62
62
|
|
63
63
|
#### 1-1-1. (C1:C494=T2)
|
64
64
|
|
65
|
-
この数式ですが、
|
65
|
+
この数式ですが、
|
66
|
-
配列(C1:C494)=セル値(T2)
|
66
|
+
**配列**(C1:C494)**=** セル値(T2)
|
67
67
|
となっています。
|
68
|
+
|
69
|
+
つまり配列について「比較」を行っているということですね
|
70
|
+
|
71
|
+
よってこの数式は「左の配列の中の各セルが、右のセル値に等しい場合はTRUE、異なる場合はFALSEである**配列を返す**」、という意味になります。
|
68
72
|
|
69
|
-
この数式は「左の配列の中の各セルが、右のセル値に等しい場合はTRUE、異なる場合はFALSEである**配列を返す**」、という意味です。
|
70
|
-
|
71
|
-
この「**配列を返す**」というところが重要です
|
73
|
+
(この「**配列を返す**」というところが重要です)
|
72
74
|
|
73
75
|
たとえば適当なセルに「=(C1:C494=T2)」を記入すると、
|
74
76
|
下の図のように、
|
@@ -108,6 +110,7 @@
|
|
108
110
|
|
109
111
|
**実は 質問のユースケースの場合、最新のExcelであればINDEXで囲まなくても正常に動作します**
|
110
112
|
なのでここではINDEXの意味についてあまり考える必要はないと思います。
|
113
|
+
|
111
114
|
INDEXが使われている理由は
|
112
115
|
+ 過去古いバージョンのExcelだと、INDEXがないと動作しなかったから。
|
113
116
|
+ 複数の表を参照する等のカスタマイズを行えるようにするため。
|
3
test
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# 配列・配列数式
|
2
2
|
|
3
|
-
質問、拝見しました。
|
4
|
-
|
3
|
+
まず、配列/配列数式について簡単に説明します。
|
5
4
|
|
6
5
|
配列とは、簡単にいえば、**複数のセルを1つの範囲としてまとめたもの**です。
|
7
6
|
そして配列数式とは、配列を作る/扱うための数式表現、または数式そのものを指します。
|
2
test
CHANGED
@@ -36,6 +36,11 @@
|
|
36
36
|
配列を使うことで、複数のセル範囲に含まれる**各セルに対して**同じ処理を一括して行うことができることが分かります。
|
37
37
|
|
38
38
|
そして、配列に対して行える処理としては、上記のような文字列の連結だけではなく、**四則演算**や**比較**も含まれます。
|
39
|
+
```text
|
40
|
+
<まとめ>
|
41
|
+
・配列を使うと、複数セルを一括して処理できる。
|
42
|
+
・可能な処理は、文字列の連結や、四則演算、比較など。
|
43
|
+
```
|
39
44
|
|
40
45
|
|
41
46
|
# 数式の解析
|
@@ -81,11 +86,11 @@
|
|
81
86
|
### 1-1-3. (C1:C494=T2)*ROW(C1:C494)
|
82
87
|
|
83
88
|
(C1:C494=T2)*ROW(C1:C494) という数式は、
|
84
|
-
「配列に配列をかけて、新たな配列を返す」という計算を行っています。
|
89
|
+
「配列に配列をかけて、新たな配列を返す」という計算を行っています。(1.で申し上げた通り、配列に対しては四則演算処理が可能)
|
85
90
|
|
86
91
|
つまり
|
87
92
|
**TRUE,FALSE が並んだ配列**(1-1-1)× **行番号の配列** (1-1-2)
|
88
|
-
を各
|
93
|
+
を各要素で行っていることになります。
|
89
94
|
|
90
95
|
ここで、EXCELの計算では、**TRUEは「1」、FALSEは「0」** と解釈されます。
|
91
96
|
|
1
test
CHANGED
@@ -80,8 +80,12 @@
|
|
80
80
|
|
81
81
|
### 1-1-3. (C1:C494=T2)*ROW(C1:C494)
|
82
82
|
|
83
|
-
|
83
|
+
(C1:C494=T2)*ROW(C1:C494) という数式は、
|
84
|
+
「配列に配列をかけて、新たな配列を返す」という計算を行っています。
|
85
|
+
|
86
|
+
つまり
|
84
|
-
|
87
|
+
**TRUE,FALSE が並んだ配列**(1-1-1)× **行番号の配列** (1-1-2)
|
88
|
+
を各行で行っていることになります。
|
85
89
|
|
86
90
|
ここで、EXCELの計算では、**TRUEは「1」、FALSEは「0」** と解釈されます。
|
87
91
|
|