• ベストアンサー

ExcelのCOUNTA関数で数えた数だけ連番を付けるには

ExcelでB列から下の行にデータが入力されています。 そのデータ数を数えるために,B4セルに=COUNTA(B5:B100)関数を入力します。 B4セルで数えた数を元にして,A5,A6,A7・・・と下方向にその数まで1,2,3・・・と連番を付けていきます。 もしB4セルの値が0なら連番は付けません。 以上のマクロをシートに貼り付けるにはどのようにしたらよいでしょうか? 教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

A5セルに次の式を入力して下方にオートフィルドラッグすればよいのでは。 =IF(ROW(A1)>COUNTA(B$5:B$100),"",ROW(A1))

oonots
質問者

お礼

ありがとうございました。 とてもよく分かりました。

その他の回答 (3)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.3

もしかして、こういう事? ------------------------------- Sub 連番()   la = 5   If Cells(4, "B") = 0 Then     MsgBox "Non DATA"   Else     For i = 1 To Cells(4, "B")       Do While Cells(la, "B") = ""         Cells(la, "A") = ""         la = la + 1       Loop       Cells(la, "A") = i       la = la + 1     Next   End If End Sub -----------------------------------

oonots
質問者

お礼

ありがとうございました。 とてもよく分かりました。 さらにデータのある行だけを連番にしてるのですね。 こういうのも あるのかと勉強になりました。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

マクロなんか使わなくてもこの式で間に合うが。 =IF(ROW()-4<=$B$4,ROW()-4,"")

oonots
質問者

お礼

ありがとうございました。 とてもよく分かりました。

  • ruushii
  • ベストアンサー率31% (25/80)
回答No.1

ご希望の解決方法ではないかもしれませんが・・ 以下の関数をA5へ入力、A6以下へコピーしてください。 =IF(OR(COUNTA($B$5:B5)=A4,B4=0),"",COUNTA($B$5:B5))

oonots
質問者

お礼

ありがとうございました。 とてもよく分かりました。

関連するQ&A