エクセルの関数かマクロでの採番方法とは?

このQ&Aのポイント
  • エクセルの関数またはマクロを使用して、指定の条件に基づいて項目を自動採番する方法について説明します。
  • 採番する際には、日時のフォーマットや月の変わり目でのリセットなどの条件を設定することができます。
  • 具体的な質問事項として、日時が入力されたら自動的に項番を採番する方法や、毎月20日になったら項番をリセットする方法、月の変わり目での項番の変更方法などが挙げられます。
回答を見る
  • ベストアンサー

エクセルの関数かマクロでの採番について

以下の様な表があります。 A       B 201201-001 2012/01/01 201201-002 2012/01/03 201201-003 2012/01/05 201201-004 2012/01/05 201201-005 2012/01/08 201201-006 2012/01/09    ・      ・    ・      ・    ・      ・ ・A列に入力する項番はB列の日時のYYYYMM-[(1)] ・B列に入力する日付は不定日時 質問事項 [1]B列に日時が入力されたらA列に自動採番する。 [2]毎月20日になったら、A列の上記(1)を001に戻す。 [3]月が変わったらA列のMMをB列の入力月と連動させる。 こんな感じにしたいです。 A        B 201201-001 2012/01/01 201201-002 2012/01/03 201201-003 2012/01/05 201202-004 2012/02/03 ←○ 201202-005 2012/02/15 201202-006 2012/02/18 201202-001 2012/02/21 ←○ 201202-002 2012/02/29 201203-003 2012/03/01 ←○ 201203-004 2012/03/10 よろしくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

B列の2行目から下方にお示しの日付のデータが有るとします。 A2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(B2="","",TEXT(B2,"YYYYMM")&"-"&TEXT(IF(ROW(A1)=1,1,IF(AND(DAY(B2)>=20,DAY(B1)<20),1,RIGHT(A1,3)+1)),"000"))

pompom_ope
質問者

お礼

ありがとうございました!試してみます。

その他の回答 (2)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

ANo.2です。 > B列に日付を入力することで、A列には質問内容の条件付きでユニークの連番を付与する処理を探しています。 どのような項番にするかは業務内容や、他の影響もあるでしょうから「そちらでちゃんと決めてください」としか言いようがありませんが、19日までは前月の月を使う訳にはいかないのでしょうか。 それが一番しっくりくるように思えます。 A        B 201201-001 2012/01/01 201201-002 2012/01/03 201201-003 2012/01/05 201201-004 2012/02/03 201201-005 2012/02/15 201201-006 2012/02/18 201202-001 2012/02/21 201202-002 2012/02/29 201202-003 2012/03/01 201202-004 2012/03/10 そうでなければ、1~19日までは項番の最後に「A」、20日~月末までは「B」を付ける等でしょうか。

pompom_ope
質問者

お礼

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

質問文の条件通りですと、 B列に2012/1/20~2012/1/31の日付がない状態で、2012/2/1と2012/2/20がある場合、どちらもA列の番号は201202-001になってしまいますがそれで良いのでしょうか?

pompom_ope
質問者

お礼

pompom_ope
質問者

補足

言葉足らずですみません。 B列に日付を入力することで、A列には質問内容の条件付きでユニークの連番を付与する処理を探しています。 実際には発注のあった日付をB列に入力すると正確に自動採番する処理を探しています。 採番条件にある処理を入れる事で、人為的な採番ミスを防ぐのが目的です。

関連するQ&A

  • エクセルで採番できる関数

    エクセルで自動採番できる関数式がうまくできずに困っています。 考えている採番の流れは以下のとおりです。 1.B列に日付が入ると、A列に自動採番される 2.採番の値は「年月6桁」+「-(ハイフン)」+「2桁の番号」(例:201407-01) 3.「2桁の番号」は、登録の順番ごとにカウントする(例:01,02,・・・10,11・・・) 4.「2桁の番号」は、次の月に変わると1からカウントし直す(例:201407-18、201408-01) いろいろ組み合わせて下記のようなものを作ってみたのですが、うまくできません。 A2=IF(B2="","",CONCATENATE(YEAR(B2),TEXT(MONTH(B2),"00")&"-"&TEXT(IFERROR(IF(MONTH(B1)=MONTH(B2),MOD(A1,10)+1,1),1),"00"))) うまく採番できる関数式を教えて下さい。 よろしくお願い致します。

  • エクセルで自動採番する方法

    「管理対象区分(カラムA)」、「起票日(カラムB)」を使って、「ID(カラムC)」に自動採番したいのですが、効果的な関数をご教示いただけないでしょうか。 ID採番のロジックは以下の通りです。 (1)(「管理対象区分」の頭文字3桁) + (2)(「起票日」のYYYYMM) + (3)(「起票日」が同月内であれば同月の通し番号、翌月であれば「001」から振り直し) <特記事項> A. (2)について、MMが一桁の場合でも、2桁表示したい(例:1月⇒01) B. (3)について、常に3桁で表示したい ご回答いただけると幸いです。 よろしくお願いいたします。

  • Excel関数での採番

    A列 B列 1  1 1  2 2  3 2  4 3  5 3  6 上記B列のように1から6までの行があるのですが2行毎にIndexをつけてA列のような形で採番するよい関数、式等ありますでしょうか? もし良いやり方をご存知でしたらご教授下さい。

  • エクセル2010のSUMIFS関数について

    A列に日付、C列に文字列、E列に数値があります。 仮に、日付は2013年4月だけ、文字列は”事務” だけに条件を絞ってE列の数値を合計する場合、エクセル2000では =SUMPRODUCT((C$1:C$1000="事務")*(TEXT(A$1:A$1000,"yyyymm")="201304")*E$1:E$1000) でうまくいきました。 こんどエクセルが2010になったので、あたらしくできたSUMIFS関数でやってみようと思い =SUMIFS(E:E,C:C, ”事務”,TEXT(A:A,"yyyymm"),”201304”) としましたが「数式が正しくありません」とエラーになってしまいます。 SUMIFS関数だと列のセル範囲を指定しなくていいので使いたいのですが・・・。 F列を作業列とし、ここにA列の日付をyyyymm形式の文字列とすれば =SUMIFS(E:E,C:C,"事務 ",F:F,"201304") で出来ますが、ほかにいい方法はないでしょうか?

  • Excelの関数を教えてください

    初めまして。よろしくお願いします。 関数を使って、以下のようなデータを作成することができれば、 その関数を教えてください。 Sheet1には次のように入力されています   A       B 1 日付      金額 2 2010/1/1 500 3 2010/2/5  300 4 2010/1/23 10000 5 2010/2/1  200 ・ ・ ・ A列に日付、B列に金額が入力されていて、行は決まっていません。 これをSheet2に集計したいのですが、B2~B13に関数を使ってできますか? Sheet2   A     B 1 月    金額 2 1月 3 2月 4 3月 ・ ・ ・ 13 12月 14 合計 Excelがわからなくてこまっています。詳しい方、ぜひ教えてください。 よろしくお願いします。

  • 自動で採番と日付を入力するマクロ

    Sheet1のC列に何かを入力すると、A列に1から番号が振られていき、B列には入力した日付が 入っていくマクロを作りたいです。ご教授教えていただければ幸いです;

  • エクセル(関数)について、教えて下さい

    写真のようにA列に日付が入力してあり、B列に数字を入力します。 B列に入力した数字の日付を、C列の表内に表示させ、D列にはB列に入力した数字を表示させたいと思います。 どのようにしたら良いのでしょうか。 よろしくお願いします。

  • エクセル関数?

    エクセル2000を使用しています。関数を使用するかわかりませんが2つ教えてください。 1.月を入力すると自動的に月末の日付が表示される。 (例:A1のセルに1と入力するとB1のセルに1月の月末日である31と表示) 2.A列に入力してある種類ごとにB列の数値の合計をB列の最後に出す。 よろしくお願いします。

  • ■EXCELでこんな関数なんですが・・・教えて!!

    たとえばA列のセルに任意の数値が入力されています。B列のセルにある条件で日付が入力されます。そして別のセルにB列の日付が入力されるごとに隣接するA列の数値を合計していく関数なんですが。よろしくお願いします。

  • Excelでの採番方法

    Excelのユーザーフォームを使って、シートへデータを反映させるマクロを組んでいます。 そこで、データ一つ一つに番号をつけたいのですが、 B列に入力した日付(例:2014/01/06)から年の2ケタだけを参照しA列に14001、14002としていきたいです。 また、年が変わった時に番号もリセットされる方法がわかりません。 B列への入力を(2015/01/06)とした場合に、番号が15001、15002と、1から連番になる方法はありますでしょうか。

専門家に質問してみよう