「管理対象区分(カラムA)」、「起票日(カラムB)」を使って、「ID(カラムC)」に自動採番したいのですが、効果的な関数をご教示いただけないでしょうか。
ID採番のロジックは以下の通りです。
(1)(「管理対象区分」の頭文字3桁) + (2)(「起票日」のYYYYMM) + (3)(「起票日」が同月内であれば同月の通し番号、翌月であれば「001」から振り直し)
<特記事項>
A. (2)について、MMが一桁の場合でも、2桁表示したい(例:1月⇒01)
B. (3)について、常に3桁で表示したい
ご回答いただけると幸いです。
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
こんばんは!
すでに回答は出ていますが・・・
他の方法の一例です。
↓の画像で説明させていただくと、
C2セルに
=IF(A2="","",LEFT(A2,3)&TEXT(B2,"yyyymm")&TEXT(ROW(A1),"000"))
という数式を入れています。
(この数式は1行目限定になります)
次にC3セルに
=IF(A3="","",IF(MONTH(B3)=MONTH(B2),LEFT(A3,3)&TEXT(B3,"yyyymm")&TEXT(RIGHT(C2,3)+1,"000"),LEFT(A3,3)&TEXT(B3,"yyyymm")&TEXT(ROW($A$1),"000")))
という数式を入れて、オートフィルで下へコピーすると
画像のような感じの表になります。
以上、参考になれば幸いですが、
他に良い方法があれば軽く読み流してくださいね。m(__)m
No.5
- 回答日時:
このような例では、一発でお望みの結果を出す数式を導くのは無理ですね。
結局、いくつかのプロセスを踏む訳ですから、端から補助列にそういう式を立てておくのが簡便かと存じます。
>ID(カラムC)
とのことですが、カラムC・Dに補助列を挿入し、ID(カラムE)という考え方でいってみましょうか。
レコード1:管理対象区分(カラムA)、起票日(カラムB)、補助列1・2(カラムC・D)、ID(カラムE)
C2:
=LEFT(A2,3) & TEXT(B2,"yyyymm")
D2:
=COUNTIF(C$1:C1,C2)+1
E2:
=C2 & TEXT(D2,"000")
として、C2:E2 と下方向にコピーします。
※)カラムB の「起票日」が日付順に並んでいない場合で、日付順に通し番号を付けたい場合は、E2 の式が複雑になります。
No.1
- 回答日時:
仮に
A B C
管理対象区分 起票日 採番
AAASSS 09/7/31
BBBSSS 09/8/1
・・・・として
1)(「管理対象区分」の頭文字3桁)は =LEFT(A2,3)で求められます。
2)(「起票日」のYYYYMM) は =TEXT(B2,"yymmdd") で求められます。
ここまでは大丈夫でしょうか?
3)(「起票日」が同月内であれば同月の通し番号、翌月であれば001」から振り直し)
これが厄介です。もしデータが起票日順に並んでいるのであれば
A B C
管理対象区分 起票日
2001/1/1 とダミーの日付として極端に小さい日付を一つ入れておく。
AAASSS 09/7/31
BBBSSS 09/8/1
=TEXT(ROW()-MATCH(DATE(YEAR(B2),MONTH(B2),0),B:B),"000")
で下へコピィしてみてください。
ここまでうまく行きましたら3つの式を&でつなげると良いです。
もしデータが起票日順でなくばらばらであれば、SUMPRODCUT関数など配列関数を利用します。
この場合、データが増えていって式を沢山下へコピィした際にパソコンへの負担が増えます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) 関数の質問です 3 2022/03/24 12:41
- その他(プログラミング・Web制作) google formsで回答者をスプレッドシートに記載する方法 1 2023/06/23 11:22
- その他(データベース) 伝票番号、品番、在庫としてマクロでもAccessでもデータ表を作りたいのですが、ご指導お願いします 1 2022/11/13 23:48
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- Chrome(クローム) 【Google】「同期は有効です」と表示されているがブックマークが同期されていない 2 2022/11/17 13:32
- Excel(エクセル) エクセルのデータ整形について 3 2022/11/12 00:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
行数が不規則な一週間ごとの合...
-
文字列になっている時間をVBAで...
-
ある列、或いは、ある行のセル...
-
マクロの有効化するダイヤログ...
-
【マクロ】フォルダからエクセ...
-
Excelでの時間帯の入力
-
excel で二つのどちらかを選ぶ
-
エクセルの順位別一覧表の自動...
-
Excel 2019 のピボットテーブル...
-
エクセル 価格表から単価を呼び...
-
excelの不要な行の削除ができな...
-
エクセルで特定の範囲内から小...
-
シートAで横に並んだ項目→シー...
-
Excelが固まってしまった。
-
Excel2013のF6キー操作について
-
【関数】スペースがいくつ入っ...
-
Excelはなんで先頭の0を消すん...
-
【Microsoft Office Excel Comp...
-
西暦や和暦の表示をyyyymmdd表...
-
別シートからの文字を変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報