エクセルの管理No.付与の際のいいアイデアを教えていただきたいです。
シートが2つあり、1つ目にはA-1,A-2,…、B-1,B-2…、C-1,C-2…といった管理No.をつけた表があり、バラバラの順番です。
A-1
C-1
A-2
B-1
A-3
B-1
↑こんな感じです。
日々増えていくもので、用事のすんだものからコピーペーストで2つ目のシートへ移動させてます。
そのため、新しく管理ナンバーを付与させる場合、2つのシートを見比べないと分からず、度々同じNo.を付与してしまうことがあるのです。
別表に使用した管理No.を付け加える方法も考えはしましたが、芸が無く工数もかかってしまうため、できれば簡単に、最新の管理No.がわかるアイデアが欲しいと思っています。
説明下手で分かりにくいかと思いますが、よろしくお願いいたします。
No.1
- 回答日時:
回答ありがとうございます。
今回の件には少し難しくて応用できませんでしたが、
このサイト自体とても勉強になりました。
ありがとうございました。
No.2
- 回答日時:
こんばんは!
参考になるかどうか判りませんが・・・
Sheet2のA列にコピー&ペーストした管理NOがあり、
Sheet1のA列に新たに管理NOを入力すると仮定します。
B列を作業列とする方法ですが、
Sheet1のB1セルに
=IF(COUNTIF(Sheet2!A:A,A:A)>0,"×","")
としてオートフィルでドラッグしてみてはどうでしょう?
もし重複する管理NOが入力された場合は「×」が表示され、重複がなければ空白になります。
(空白の変わりに「○」が表示される方法もいいかもしれません)
この程度の回答ですが、
参考になれば幸いです。m(__)m
No.3
- 回答日時:
マクロでよければ
詳細が無いので
1つ目のシート名:Sheet1
1つ目のシート管理No.:A列
2つ目のシート名:Sheet2
2つ目のシート管理No.:A列
とします
Sheet1のシートタブを右クリック
コードの表示を選択
表示されるワークシートモジュールへコードをコピペ
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
If Intersect(Range("a:a"), Target) Is Nothing Then Exit Sub
For Each Rng In Target
If Rng.Value = "" Then Exit For
Select Case Rng.Value
Case "a", "A"
Rng.Value = "A-" & Evaluate("COUNTIF(sheet2!A:A,""a*"")") + Evaluate("COUNTIF(A:A,""a*"")")
Case "b", "B"
Rng.Value = "B-" & Evaluate("COUNTIF(sheet2!A:A,""b*"")") + Evaluate("COUNTIF(A:A,""b*"")")
Case "c", "C"
Rng.Value = "C-" & Evaluate("COUNTIF(sheet2!A:A,""c*"")") + Evaluate("COUNTIF(A:A,""c*"")")
End Select
Next Rng
End Sub
Sheet1のA列(管理No.)に"A"・"B"・"C"のどれか一文字を入力すると
最新の管理No.が表示される
マクロ以外が希望なら、スルーしてください
回答ありがとうございます。
マクロだとこんなことも出来るんですね。感激です。
さっそく利用させていただきます。
そこでもう1点訊きたいのですが、A-1をA-0001と表示させたい場合はどうすればいいのでしょうか?
No.4
- 回答日時:
一応、アイディアとしてです。
>用事のすんだものからコピーペーストで2つ目のシートへ移動させてます。
この作業すら手がかかると思います。
A B
用事 管理番号
済み A-1
済み C-1
A-2
済み B-1
A-3
B-1
・・・と一列追加して、用事が済んだものマークを入れる。
処理済と未処理を仕分けるにはオートフィルターを使用する方法は如何でしょうか。
1枚のシートですみます。
ちなみに、1行目、2行目に
1行目 A B C ・・・と準備
2行目に =MAX(IF(LEFT($B3:$B1000,1)=A1,RIGHT($B3:$B1000,1)*1,0))
と入れてCtrl+Shift+Enter で決定して配列関数にします(式が{}でくくられます。
出来た式を右へコピィします。
*上記式ではB列の3行目から管理番号があるとしています。
A,B,Cそれぞれで始まる管理番号の末尾の最大値が得られます。
もし末尾の番号が4桁であれば式中の RIGHT($B1:$B1000,4)としてみてください。
回答ありがとうございます。
今回はコピーする手間がかかっても2シートにしたい理由がありますので申し訳ありません。
ただNo.4No.5の方法で一度試してみました。
こんなやり方もあるのかと関心しましたし、配列関数自体初めて聞いた言葉だったのでとても勉強になりました。
親切にどうもありがとうございました。
No.5
- 回答日時:
No4です。
投函した後に気がついたのでもう少し。一般的?オーソドックスなシートの構成ですが
A B C
用事 項目 番号 と分けて
済み A
済み C
A
B
A
・・・として、C列には
=IF(B2="","",COUNTIF(B2:B$2,B2)) と入れて下へコピィしておきます。
C列の書式は、ユーザー定義で 00000 とでもしておきます。
B列に A とか入力すれば、次の番号が自動で表示されます。
最初のシートの構成で複雑なことをして、後々、厄介になってしまった事例だと思いました。
取り合えず参考までに、新しいシートでも作成して試してみてください。
No.6ベストアンサー
- 回答日時:
#3の補足読みました
>そこでもう1点訊きたいのですが、A-1をA-0001と表示させたい場合はどうすればいいのでしょうか?
対応してみました
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
If Intersect(Range("a:a"), Target) Is Nothing Then Exit Sub
For Each Rng In Target
If Rng.Value = "" Then Exit For
Select Case Rng.Value
Case "a", "A"
Rng.Value = "A-" & Evaluate("text(COUNTIF(sheet2!A:A,""a*"")+COUNTIF(A:A,""a*""),""0000"")")
Case "b", "B"
Rng.Value = "B-" & Evaluate("text(COUNTIF(sheet2!A:A,""b*"")+COUNTIF(A:A,""b*""),""0000"")")
Case "c", "C"
Rng.Value = "C-" & Evaluate("text(COUNTIF(sheet2!A:A,""c*"")+COUNTIF(A:A,""c*""),""0000"")")
End Select
Next Rng
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Excel(エクセル) 単価シートから単価をエクセル関数で自動取得する方法 1 2023/07/02 22:00
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- 日本語 問題: A:トイレにだれ___いませんか。その2 1 2023/03/12 22:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報