アプリ版:「スタンプのみでお礼する」機能のリリースについて

データが約1,000件あって、その中のある列の一部のセルに飛び飛びに空白セルが200件ほどあります。
これを抽出して、001などのように3桁の連番をふりたいと思います。
オートフィルターを使ってセル毎に入力しましたがらちがあきません。
まとめてできる方法がないでしょうか。

A 回答 (5件)

列を1列追加します


その列に一番最後まで連番を振ります
飛び飛びの列→連番を振った列の順で並び替えます
(空白が入っている部分だけが集まります)
空白行に一気に連番を振る
連番を振った列のみで並び替える
連番の列を消す

でいかがでしょうか
    • good
    • 0
この回答へのお礼

ダミーを入れての並べ替えは経験があるので難なく操作できました。
もう少し熟考すれば良かったと反省しています。
お手数をお掛けしました。ありがとうございました。

お礼日時:2006/11/16 16:41

その飛び飛びの空白が同じ列にあるなら、並べ替えをしたらよいのではないでしょうか。


いったん並べ替えをすると「元に戻す」くらいでしか元の状態に戻せませんが(つまり作業直後しかできない)、
作業用に1列挿入してそこに連番を振っておけば 最後に連番列で並べ替えなおせばいいので楽勝です。

(1) 連番列を作成
(2) 空白の混じっている列を「最優先されるキー」に、連番列を「2番目に優先されるキー」にして並べ替え
(3) 空白がかたまるので、001からオートフィルなどを使って値を入力
(4) 連番列を「最優先されるキー」にして再度並べ替え
(5) 連番列削除
    • good
    • 1
この回答へのお礼

ダミーを入れての並べ替えは経験があるので難なく操作できました。
もう少し熟考すれば良かったと反省しています。
お手数をお掛けしました。ありがとうございました。

お礼日時:2006/11/16 16:42

こんなんでいかがでしょう?


Sub test()

Dim i As Integer
Dim count As Integer
Dim count3 As String

count = 0

For i = 0 To 20

If ActiveCell.Offset(i, 0) = "" Then

count3 = count
Do While Len(count3) <> 3
count3 = "0" & count3
Loop

ActiveCell.Offset(i, 0).Value = count3
count = count + 1
End If

Next

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
先の方の説明で解決できました。実際に操作するのは私ではないし、マクロには疎い方なので折角ですが、ポイントの対象から外させていただきました。申し訳ありません。

お礼日時:2006/11/16 16:36

「ある列」とは特定の一列ということでよいのでしょうか。

1列に限定してブランクセルに3桁の連番を振るのであれば、こんなマクロでしょうか。

Sub Macro()
Const trgCOL As String = "E" '←ここに処理する列を記述する
Dim LastR, wkNum As Long, c As Range
 LastR = ActiveSheet.Cells(65536, trgCOL).End(xlUp).Row
 For Each c In Range(Cells(1, trgCOL), Cells(LastR, trgCOL)) _
     .SpecialCells(xlCellTypeBlanks)
  wkNum = wkNum + 1
  c.Value = wkNum
  c.NumberFormatLocal = "000"
 Next c
End Sub

マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はALT+F8を押して、マクロ名を選択します。
    • good
    • 0
この回答へのお礼

ありがとうございます。
先の方の説明で解決できました。実際に操作するのは私ではないし、マクロには疎い方なので折角ですが、ポイントの対象から外させていただきました。申し訳ありません。

お礼日時:2006/11/16 16:38

データが1シート上にある


いまだ1CELLも連番が入っていない
データ最上位行が3行目である
空白セルのある列はG列である
とします

1列作業列をください
仮にこれをAA列とします

まず第一段階として
AA3に
=IF(G3="",TEXT(COUNTIF($G$3:G3,""),"000"),G3)
と入力し
これをデータ最下位行までコピーしてください

第二段階として
今敷を入れたAAのセルをすべて範囲選択してコピーし
連番を入れたいG列に対し行ズレを起こさないように注意して値貼り付けしてください

第三段階として
不要となったAA列を削除してください

これでお望みのままになったと思います

如何でしょうか?

もし幾らかのセルは既に連番で埋まっているようなら
構文中のCOUNTIF($G$3:G3,"")の部分に
COUNTIF($G$3:G3,"")+53
という感じにその記入した最大値を加算するよう書き加えてください
    • good
    • 0
この回答へのお礼

関数を使わずに、先の方の説明で解決しました。
参考にさせていただきます。ありがとうございました。

お礼日時:2006/11/16 16:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!