• ベストアンサー

エクセル 自動で連番振付

初心者の質問で申し訳ないですが、教えて頂けたら嬉しいです。 エクセルの社員名簿があり、特別教育が修了した順に修了日と修了No.(001~)を入力しているのですが、修了日を入力したら自動で次のNo.を振付けれるようにできないでしょうか。 名簿順で修了していないので飛びとびです。 A(氏名)B(修了日)C(No.) 1aaa  yy/mm/dd  001 2bbb 3ccc   yy/mm/dd  003 4ddd   yy/mm/dd  002 5eee 6fff   yy/mm/dd  004 勉強不足、また、つたない文章ですみません。 お分かりになる方、回答よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

NO4です。 前回答ではdeleteキー押下で反応していましたので訂正します。 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Error If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub If Target.Offset(0, -1).Value = "" Then Exit Sub If Target.Value <> "" Then Target.Offset(0, 1).Value = Application.Max(Range("C:C")) + 1 End If Error: End Sub

nyanyaro
質問者

お礼

ありがとうございます(^^)大事にメモして使わせていただきます!

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。 関数では厳しそうなのでVBAにしてみました。 (1)対象シートのシートタブ上で右クリック→コード表示→以下のコードを貼り付け→alt+F4キー押下 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Error If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub If Target.Offset(0, -1).Value = "" Then Exit Sub Target.Offset(0, 1).Value = Application.Max(Range("C:C")) + 1 Error: End Sub 尚、C列はセルの書式設定をユーザ定義で000として下さい。

nyanyaro
質問者

お礼

回答ありがとうございます。 できました。目からウロコでした。VBAってすごいですね(;;) VBAの知識皆無ですが、理解できるように頑張って勉強したいとおもいます。 ありがとうございました。

回答No.3

No2のtortue2009さんと同じですが C1セル =IF(B1="","",TEXT(RANK(B1,$B$1:$B$6,1),"000")) 下へオートフィル もう一度確認してみてください

nyanyaro
質問者

お礼

解決しました(^^)ありがとうございました。

nyanyaro
質問者

補足

回答ありがとうございます。 お手数かけて申し訳ないです。ちゃんとできました。(^^; もうひとつだけ、同じ日に修了した場合に同じ番号がでてしまうのですが、同じ日でも入力順に番号を振付けられるでしょうか?

回答No.2

素人ですが 書かれている表の場合で (A1:C6セル範囲 項目名なしの時) =IF(B1="","",RANK(B1,$B$1:$B$8,1)) 表示形式は ユーザー定義「000」で いかがでしょう?

nyanyaro
質問者

お礼

すみません!ちゃんとできました!ありがとうございます。

nyanyaro
質問者

補足

回答ありがとうございます。 式を試しましたがエラー♯N/Aがでました(;;)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

C1に =IF(B1<>"",1,"") C2に =IF(B2<>"",COUNT($C$1:C1)+1,"") 下方向にフィル 表示形式を書式設定で000に設定

nyanyaro
質問者

お礼

解決しました(^^)ありがとうございました。

nyanyaro
質問者

補足

回答ありがとうございます。 説明不足でした。すみません。 修了した人順(修了日を入力した順)にNo.をつけれればと思っております。 6fff(No.004)の次に、2bbbが修了。005を振付。のような。 できますでしょうか?

関連するQ&A