いつも心にバーレーワイン

ExcelのvbaとかeccubeとかECサイトのリスティング広告設定とかよろずやってます。Laravelはじめました。

Excelで名前定義するときに空白セルを省く方法 +ひと工夫

Excelで名前定義するときに空白セルを省く方法 +ひと工夫

Excelで名前定義するときに空白セルを省く方法

Excelでリストの選択値を別シート管理する場合、将来的な増に備えて余裕を持ちたいが
空白の選択リストが入るのはイヤだよって場合、
名前定義の参照範囲にOFFSET関数とCOUNTA関数を組み合わせて

=OFFSET(管理!$B$4,0,,COUNTA(管理!$B$4:$B$104))

のように書く事はネットで見つかると思います。
※この例だと管理シートの B4セルからB104セルまでの空白を除いたセルをリスト化。
f:id:taketnak:20160118221140p:plain


この書き方だと先頭の値の行を削除した場合、名前定義がおかしくなって
リストが動かなくなっちゃうんですよね・・・

先頭の値の行を削除すると参照範囲が不正となる。
f:id:taketnak:20160118221414p:plain


で、ひと工夫なんですが参照範囲を1つ上(この例だと項目名)からにして、

=OFFSET(管理!$B$3,1,,COUNTA(管理!$B$4:$B$104))

このように「B4セルから0番目開始」を「B3セルから1番目開始」にしておくことで
1つ目の値の行を削除されても名前定義が壊れることなく使用する事ができます。

f:id:taketnak:20160118221720p:plain

・・予期せぬ障害にならないためのひと工夫でした。