1行または1列のセル範囲に対して最終データの行番号/列番号
または「最終セルまでの範囲をアドレス文字」で返します。
『ワークシート Only 』 『#VALUE! 』
※利用に際し、注意事項あり(解説を参照)
kt終端( 範囲, [基点], [始点], [絶対], [Wksh] )
返却値 ‥‥‥ Variant(Long) 型 範囲 ‥‥‥ Range 型 基点 ‥‥‥ Range 型 (省略可) 始点 ‥‥‥ Range 型 (省略可) 絶対 ‥‥‥ Boolean 型 (省略可、既定値:False ) Wksh ‥‥‥ Boolean 型 (省略可、既定値:False )
指定した1行または1列のセル範囲において、最終データの行または列番号を返します。
末端(97-2003形式:65536行/IV列 , 2007形式:1048576行/XFD列) からではなく、途中のセルから
遡って算出したい場合は、基点にセルを指定する事で対応できます。
始点にセルを指定すると、そのセルから最終データ位置のセルまでの範囲をアドレス文字列として返し
ます(A1形式/R1C1形式の状態に合わせて、アドレス文字列を生成します)。
絶対 = TRUEにすると絶対参照、FALSEなら相対参照で返します。
Wksh =TRUEにすると、[シート名]参照付きで返します。
指定した内容が不正な場合、または、VBAから利用した場合は[#VALUE!]が返ります。
範 囲 ‥‥‥ 最終データ位置を求めたい行範囲または列範囲を『A:A』や『3:3』(R1C1形式ならば『C1』や『R3』)という風に行全体/列全体で指定します。
1行または1列に限ります。複数行/列はエラーになります。
同一ブック内での「他シート」は指定できますが、他ブックのセル範囲は指定できません。
『A10:A100』といった指定でも求める事ができますが、解説に示すような問題がありますので、指定しないで下さい。
基 点 ‥‥‥ 末端(97-2003形式:65536行/IV列 , 2007形式:1048576行/XFD列)以外の途中位置から遡って検索する場合に、そのセル(単独セル)を指定します。
範囲と同じシートのセルを指定して下さい。
始 点 ‥‥‥ 最終データ位置の「行(列)番号」の代わりに、セル範囲のアドレス文字列を求める場合に、始点となるセル(単独セル)を指定します。
範囲と同じシートのセルを指定して下さい。
絶 対 ‥‥‥ 始点を指定した場合にのみ意味を持ちます。
・相対参照形式で求める場合は、FALSE または 省略します。
・絶対参照形式で求める場合は TRUE にします。
Wksh ‥‥‥ 始点を指定した場合にのみ意味を持ちます。
シート参照(Sheet2!A1:A20 など)付きで求める場合にはTRUEを指定します。
この関数はVBAにおける下記マクロと同様の算出を行なうものです。
Range("A65536").End(xlUp).Row
Range("IV1").End(xlToLeft).Column
(補) 97-2003形式:65536行 / IV列 , 2007形式:1048576行 / XFD列
使用にあたっては、下記の注意事項を良くお読みください。
「範囲」の指定の仕方、および行/列挿入の場所によっては【再計算】されない場合があります。
この関数は、[A:A]や[10:10]といった列全体/行全体ではなく、[A5:A100]とか[C10:AA10]と
いった列/行の一部分を指定しても動作しますが、そのセル範囲の上側/左側で行挿入/列挿入
した場合に【再計算】の対象とならない為、挿入処理前の内容のままになってしまいます。
そのセル範囲の内側で行挿入/列挿入した場合は大丈夫です。
この場合は、[kt終端]が書かれているセルをダブルクリックで入力/編集状態にして、そのままエンター
キーを押す事によって再計算を実行させる事で正しい位置が得られます。
トラブルの元となりますので、必ず【 A:A 】や【 10:10 】といった列全体/行全体での指定をするように
して下さい。
他の関数の引数に指定する場合(例えばSUM関数など)、kt終端の結果を[INDIRECT]関数で括る
必要があります。
斜体はR1C1形式環境での使用例
・A列の最終行番号を求める
=kt終端(A:A) =kt終端(C1)
・3行目の最終列番号を求める
=kt終端(3:3) =kt終端(R3)
・Sheet2のA列の最終行番号を求める
=kt終端(Sheet2!A:A) =kt終端(Sheet2!C1)
・他ブックの指定
=kt終端([Book2.xls]Sheet2!B:B) ⇒ #VALUE! になります
Book2.xls内で、例えば Sheet2のD1セルに
=kt終端(B:B) =kt終端(C2)
として、参照する側のブックからは
=[Book2.xls]Sheet2!D1 =[Book2.xls]Sheet2!R1C4
という風にします。
・実際の利用
=SUM( INDIRECT("A1:A" & kt終端(A:A) ) )
C1: =kt終端(Sheet2!A:A)
=SUMIF( INDIRECT("Sheet2!A1:A" & C1),
"りんご", INDIRECT("Sheet2!B1:B"& C1) )
・アドレス文字列で求める
=SUM( INDIRECT(kt終端(A:A,,A3) ) )
「=SUM(INDIRECT("A3:A12"))」などといった意味になります。
=SUM( INDIRECT(kt終端(Sheet2!A:A,,Sheet2!A3,,TRUE) ) )
「=SUM(INDIRECT("Sheet2!A3:A12"))」などといった意味になります。
Sheet1 で下記の場合
=SUM( INDIRECT(kt終端(A:A,,A3,,TRUE) ) )
「=SUM(INDIRECT("Sheet1!A3:A12"))」などといった意味になります。
・途中のセルを下端にして求める
=kt終端(A:A,A50)
[A50]より下に別のデータがあって、[A50]まででの最終データ位置を
求めるような場合は、このようにします。