• ベストアンサー

空白セルへの連番入力

添付図にて、B列には、空白を含め連番(101~)が並んでいます。 そして、B列の空白セルに、C列のような新たな連番(201~)を入れようとしています。 出来上がりはD列のようになります。 ここで、元のデータを消してはなりません。 また、新たな連番の初期値(201)は手入力するとします。 以前にもここで質問しましたが、そのときは私の日本語が悪く、希望の答えをもらうことが出来ませんでした。頭を冷やして再度質問させてもらいます。

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

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.2

C2セルに「200」と入力し ■C3セル =IF(B3="",MAX(C$2:C2)+1,"") とか。

aerio
質問者

お礼

一番シンプルな解と思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.6

>元のデータを消してはなりません。 消してはいけない「元データ」とは何処にありますか? >また、新たな連番の初期値(201)は手入力するとします。 何処に入力しますか? 質問の貼付画像のC4へ手入力するとC4セルに入力された数式を上書きしますので前項の「元のデータを消してはなりません。」と言う条件を満たせないでしょう。 仮にC1セルに初期値を手入力する場合は下記の数式をC3へ入力して下へオートフィルコピーすれば条件に合います。 =IF(B3="",IF(MAX(C$1:C2),MAX(C$1-1,C$2:C2)+1,""),"") 但し、C1セルに数字以外の文字が混在する文字列を入力するとエラーになります。 また、C2セルは未入力または数字以外の文字列でなければ算出される連番の値に誤差が生じます。 D3セルには次の数式を入力してC列と同様に下へオートフィルコピーすれば良いでしょう。 =IF(COUNT(B3:C3),SUM(B3:C3),"") 質問の表現をもう少し分かり易くすることで自分の思考もハッキリするようになります。

aerio
質問者

お礼

>「元データ」とは何処にありますか? B列のデータそのものです。 >また、新たな連番の初期値(201)は手入力するとします。 何処に入力しますか? C4です。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! アップされている画像で 仮にB4セルに「201」と手入力すると B列のそれ以降の空白セルに「202」からの連番を表示したい!というコトですね? 関数では無理だと思いますのでVBAでの一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻り、B列の空白セルに数値を入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim i As Long, cnt As Long With Target If .Column = 2 And .Count = 1 Then If .Value <> "" Then If IsNumeric(.Value) Then If InStr(.Value, ".") = 0 Then cnt = .Value For i = .Row + 1 To Cells(Rows.Count, "B").End(xlUp).Row If Cells(i, "B") = "" Then cnt = cnt + 1 Cells(i, "B") = cnt End If Next i Else GoTo EH End If End If End If End If Exit Sub EH: MsgBox "入力値が不正です" Application.EnableEvents = False .Select .ClearContents Application.EnableEvents = True End With End Sub 'この行まで ※ 色々エラー処理を考えると少し長くなりました。 ※ 一旦チェンチイベントが実行されると元に戻せませんので 別Sheetで試してみてください。m(_ _)m

aerio
質問者

お礼

申し訳ありません。 私にとってVBAは中国語や韓国語です。 何れもチンプンカンプンです。

すると、全ての回答が全文表示されます。
回答No.4

D1=IF(COUNT(A1:B1),LOOKUP(MAX(A1:B1)+1,A1:B1),"") 下方向にコピー

すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.3

消してはならない「元のデータ」が何処にあるのか、その全てをセル番地で教えてください。 添付図で空白セルに見えているのが、空白セルでないのなら、どんなデータが入力されているのかを「頭を冷やして」具体的に明記されたい!

aerio
質問者

お礼

コメントありがとうございます。 「元のデータ」とは、B列のデータを指します。 セル番地で言うとすれば、B3,B5,・・・です。 B列で空白セルに見えているのは、空白セルです。 日本語が悪く、失礼しました。

すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.1

C2セルに、以下の式を入れて下にドラッグコピー =IF(B2="",201+COUNT(C$1:C1),"") D2セルに、以下の式を入れて下にドラッグコピー =B2&C2

aerio
質問者

補足

早速の回答ありがとうございました。 このまま使えること、確認しました。

すると、全ての回答が全文表示されます。

関連するQ&A