ご訪問ありがとうございます。
Googleシートマスターのひろしです。
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- ROW、INDIRECT,ARRAYFORMULA関数の華麗な組み合わせ方がわかります。
- SEQUENCE関数のイケてる使い方がわかります。
なので、サクッとマスターして
と答えてあげてください。
動画はこちら
シートはこちら
ポイント
1. 数式の分解解説
=ArrayFormula(row(INDIRECT(“B1:B”&(counta(B2:B)+1)-1)))
① COUNTA(B2:B)
B列(2行目以降)に、いくつデータが入っているかを数えます。
-
例えば、B2からB11まで10個のデータがあれば、結果は
10になります。
② (COUNTA(B2:B)+1)-1
ここは少し冗長に見えますが、おそらく「見出しを除いたデータの末尾行」を計算しようとした名残か、特定の行範囲を動的に指定するための記述です。
-
結果としては、単純に
COUNTA(B2:B)と同じ数値(上記の例なら10)になります。
③ INDIRECT("B1:B" & ...)
ここがポイントです。INDIRECT は文字列を「セル参照」に変換します。
-
もし ② の結果が
10なら、"B1:B10"という文字列を作り、それを**実際の範囲(B1セルからB10セルまで)**として認識させます。
④ ROW(...)
指定された範囲の行番号を返します。
-
ROW(B1:B10)であれば、1, 2, 3, 4…10 という数字の集まりを返そうとします。
⑤ ArrayFormula(...)
通常、ROW 関数は1つのセルの行番号しか返せませんが、ArrayFormula をつけることで、範囲内すべての行番号を配列として一気に表示させます。
最後までご覧いただきありがとうございます。
今回の数式は、空の行は認めていません。
空の行にも対応したい場合は、こちら↓
効果的なArrayformulaの使用方法 項番の範囲を自動的に広げる方法
請求書の項番を効果的に振ることができます。
OFFSET関数の効果的な使い方がわかります。
ArrayFormulaの画期的な使い方がわかります。

