エクセル マクロの作成代行 サービス専門

連番 空白セル飛ばし(不規則オートフィル)の方法

time 2021/10/27

上のExcelの表をご覧ください。

Bの列に、不規則に空白をあけながら文字が入力してあります。
この、文字が入力してあるところに連番をふらなければなりません。

1つ1つ手で入力してもいいですが、もっと下まで入力してあるセルがあったら大変ですよね。

そこで今回は関数を使って解決してみましょう。

①IF関数を使って、B列のセルが空白であれば空白にする
②B列のセルが空白でない場合、連番を付していく

上記①②を満たす式が、

=IF(B1=””,””,COUNTA($B$1:B1))

です。

この式を入力すると、B列で入力があるところに連番をふることができます。

試しにこの式をC列の下のほうまで入力してみましょう。

ざーっと下までコピーします。

どうでしょうか。ばっちり文字入力のあるセルのカウントができましたね。

解決しました!
 
 

しかし、例えばB列じゃなくてC列のデータを数えたいとなったときに、上記の式をコピペするだけではうまくいきません。

ということで、この式を詳しく見てみましょう。

数式バーの左側にあるを押して、関数の挿入ウインドウを出します。
関数の分類のところを「論理」に合わせると、下の関数名の中に「IF」が出てきますので選択してOKを押してください。


論理式のところには、「B2=””」と入力します。「””」は空白を表しますので、この論理式は、「B2は空白である」という意味になります。

その下、「値が真の場合」、つまり、論理式B2=””が正しい場合、「””」とする。

そして、「値が偽の場合」、B2が空白ではない場合は「COUNTA($B$1:B2)」となっています。

COUNTA関数は、範囲に含まれる空白ではないセルの個数を返します。

つまり、B1からB2までの間に空白ではないセルはいくつかを数えてくれます。
ということは、連番になりますね。

例えばC7の式を見てみますと、「COUNTA($B$1:B7)」、B1からB7までの数を数えてくれています。

 
 

ここで気を付けてほしいのは、「COUNTA(B1:B2)」ではなく「COUNTA($B$1:B2)」となっている点です。

「$B$1」とは、B1に固定されているという意味になります。

「COUNTA(B1:B2)」とすると、例えば下の行にコピペしていく場合、B1のところが、B2、B3とずれていってしまいますので、「$B$1」にして固定しなければ望んだ数値が出てきません。

ちなみに、どのように「$B$1」と入力するかというと、「COUNTA(B1:B2)」と入力後、「B1」をドラッグして選択し、F4を押すと「$B$1」になります。

番地を変えてみるなどして、いろいろ試してみてくださいね。

 
 
マクロの作成代行サービス
https://www.tokyo-typing.com/provectus/

 
自動計算できる見積書はこちら
https://www.tokyo-typing.com/provectus/quotation/