1行おきに連番をふるといったものではなく、値の有無が不規則であっても対応するものとします。
COUNTIF関数を使う方法
次の画像ではB列にいくつかの値が飛び飛びに入っており、値があるセルの横(C列)に1から連番をふるものとします(以下の例でも同様)。
まずC3セルに次のような式を入力します。

C3セル
=IF(B3="","",COUNTIF(B$3:B3,"<>"))
B3セルが空白だったら空白を、そうでなければB3セルからこの数式が入っているセルまでの間(この式だとB3セルの1セルだけですが)に空白でないセルがいくつ入っているかを表示する、という式です。絶対参照($)の存在に注意してください。
そのまま数式をC11セルまでフィルコピー(C3セルの右下に表示されている小さい四角をC11セルまでドラッグ)すれば完成です。

画像は省略しますが、ここでC11セルの数式を確認すると「=IF(B11="","",COUNTIF(B$3:B11,"<>"))」となっています。
B11セルが空白だったら空白を、そうでなければB3セルからB11セルまで間に空白でないセルがいくつ入っているかを表示する、という式です。
絶対参照($)の効果により、1セルごとにCOUNTIFの対象範囲が拡大していくのがポイントです。
1つの式で済ませる方法
スピル機能のあるバージョンで、1つのセルの1つの数式のみですべての行に連番をふる例です。
やや難解になりますが3つの例を紹介します。バージョンによって使える関数と使えない関数があるのでご注意ください。
1つ目の例です。

C3セル
=MAP(B3:B11,LAMBDA(x,IF(x="","",COUNTIF(B3:x,"<>"))))
MAP/LAMBDA関数を使いB3:B11の範囲をxと名付けています。
xのそれぞれのセルについて、C3セルからそのセルまでの間に空白でないセルがいくつあるかをカウントしています。ただしIF関数により隣のセルが空白なら何も表示されません。
ちょっと複雑ですが最初の例を素直に拡大した数式といえます。
2つ目の例です。

C3セル
=IF(B3:B11="","",COUNTIF(OFFSET(B3,,,SEQUENCE(ROWS(B3:B11))),"<>"))
「OFFSET(B3,,,SEQUENCE(ROWS(B3:B11)))」の部分がポイントです。これは「B3セルを起点として1行を取得」「B3セルを起点として2行を取得」…「B3セルを起点として9行を取得」というように計9種の配列を生成します。そしてそのそれぞれをCOUNTIF関数の第1引数(範囲)とすることで、空白でないセルをカウントを計9回カウントしています。ただしIF関数により、隣のセルが空白なら何も表示されません。
続いて3つ目の例です。

C3セル
=IF(B3:B11="","",COUNTIF(TAKE(B3:B11,SEQUENCE(ROWS(B3:B11))),"<>"))
これも1つ上の例とほとんど同じですが「B3セル」「B3セルからB4セル」…「B3セルからB11セル」という計9種の配列を取得するのにTAKE関数を使用しています。
空文字列がある場合の対応
問題となるケース
値に空文字列(「=""」とか「'」のような長さ0の文字列)が含まれる場合についてです。
関数で「""」と出力させたものも空文字列ですので、連番の対象としての扱いを考慮する必要があります。
次の画像は、最初の例の数式を入力した状態で、B9セルに空文字列を入力した様子です。

空文字列の横には連番が表示されませんが、COUNTIF関数の条件が「"<>"」だと空文字列もカウントされるため、以降の連番が連続しないものとなってしまいます。
そこで以降では空文字列をカウントする場合としない場合を紹介しますが、スピルを利用しない単純なやり方のみとします。
空文字列にも連番をふる方法
次の画像では空文字列の隣にも連番を表示するようにしています。

C3セル(C11セルまでフィルコピー)
=IF(ISBLANK(B3),"",COUNTIF(B$3:B3,"<>"))
ISBLANK関数を使い、B列が完全な空白セル(値がない)かどうかを判定しています。
これにより空文字列が入っていても連番がふられます。
空文字列に連番をふらない方法
次の画像では空文字列に連番を与えず、表示もさせないようにしています。

C3セル(C11セルまでフィルコピー)
=IF(B3="","",ROWS(B$3:B3)-COUNTBLANK(B$3:B3))
「ROWS(B$3:B3)」で範囲内のセルの数(行数)をカウントし、「COUNTBLANK(B$3:B3)」で空白セル(値がない)及び空文字列の数をカウントしています。これらの差により1文字以上の値をカウントしています。
次の画像は別の数式を使ったやり方です。

C3セル(C11セルまでフィルコピー)
=IF(B3="","",SUMPRODUCT((LEN(B$3:B3)>0)*1))
「SUMPRODUCT((LEN(B$3:B3)>0)*1)」により、範囲内に1文字以上の値がいくつあるかをカウントしています。空白セル(値がない)のほか、空文字列もカウントされないので空文字列に連番がふられません。
なお、LEN関数は数値や日付に対しても1以上の値を返すので数値や日付にも連番がふられます(この結果についてはこれまでの例でも同様)。
備考
他の関数を使うアプローチも考えられますが、COUNTA関数が空文字列をカウントすること、ワイルドカードを使うと数値や日付がカウントできないことが注意点となります。