ここから本文です

excelで、A列に通番を設定する計算式をA列に入れたいと考えています。 例)B列に...

pun********さん

2017/11/2210:34:09

excelで、A列に通番を設定する計算式をA列に入れたいと考えています。
例)B列に何かしらの入力をするとA列に1から番号をふる感じです。B列に2個目の入力をするとA列には2がふられます。

※ただし上から順番になっては
いけず入力した順番にふってほしいのです。

このような計算式はありますでしょうか?
ちなみに類似だとA列にこの計算式なのですが、
=IF(COUNTA(B2),COUNTA(B$2:B2),"")
これだと上から順番に通番をふられてしまいます。

宜しくお願いします。

閲覧数:
32
回答数:
3
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

mac********さん

2017/11/2211:46:34

ご希望の処理を行うには以下のようなイベントマクロを使用することになります。

シート名を右クリックして「コードの表示」で以下のコードをコピー貼り付けしてみてください。


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Target.Offset(0, -1).Value = WorksheetFunction.CountA(Range("B:B"))
End If
End Sub

項目名があるならCOUNTA関数の最後に「-1」を追加してください。

質問した人からのコメント

2017/11/22 23:30:10

わざわざコードまで記載して頂き、しかもコピペするだけで要望通りの動作をしました!!項目がある時の修正方法も記載して頂きとても親切でした。ありがとうございました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

mit********さん

2017/11/2211:24:08

マクロを用いて作業列に入力の時刻を表示させ、その時刻をもとに番号をふるなどの操作になりますね。
マクロを設定するには表示されているシートのシート見出しを右クリックして「コードの表示」を選択します。
表示される画面の右側の広い窓内に次の式を入力します。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 1 Then Target.Offset(0, 10) = Now
End Sub

シートの画面に戻ってA2セルには次の式を入力して下方にドラッグコピーします。

=IF(B2="","",RANK(L2,L:L,1))

B列の2行目から下方にデータを入力することで入力の順序に従って1からの番号がA列に表示されます。
L列には入力の時刻が表示されますがL列を選択して右クリックし「非表示」を選択してもよいでしょう。

プロフィール画像

カテゴリマスター

gru********さん

2017/11/2210:55:22

数式では無理です。セルの値がいつ入力されたかの情報は保持されません。

マクロで値の編集を延々と監視して、変化があったのがB列ならそのセルの左隣にcounta(B:B)の値を入力するってのなら作れるでしょうけどね。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる