• ベストアンサー

自動採番

エクセルで申請があったものに対して、フォーマットのある 箇所に採番をしなければいけませんが、毎回打ち込むのは 大変です。 「○○○-070724○」「三桁の数字-yymmdd○(連番)」 (最初の三桁の数字のものに対して連番/ex”123″のものが 070724に3件発生した時に123-0707241→123-0707242→ 123-0707243となるように採番したいですが、いい方法は ないものでしょうか?○○○の部分はジャンルで、多数 存在します。 せめて「○○○-yymmdd○」の「-yymmdd○」の部分だけ でも出るようになれば楽になります。CONCATENATE関数で 「CONCATENATE("-",TODAY(),・・・」で出来ないものかと 試していますが、TODAY関数5桁数字が出てきてしまいます。 自動採番のやり方もわかりません。 自動採番出来るスタンプみたいな事はエクセルで出来ませんか? わかる方がいらっしゃいましたら、教えてください。 よろしくお願いします。   

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

  • ベストアンサー
  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

エクセルには情報をシート内から検索するための FINDやMATCHやsearch構文があるので 表中の同番の数字を捜すことは一定の検索順序のルールがあればそう難しいことではないですよ 用は過去の最大値を見付けてきて参照して1加算して表示させてやればいいのですよ 配列数式を用いてOOO-YYMMDDの値が一致するものだけを篩に掛けた後に max構文にてその中での最大値を捜し出せば後は簡単ですよね 今回は例題フォームが残念ながら示されていないので 具体的な構文は掛けないですが 次に挙げるリンクを参照頂けると エクセルにおける配列数式と検索についてのエッセンスを感じて頂けるのではないかと思います。 日経PC21 / エクセル「配列数式」講座 http://pc.nikkeibp.co.jp/pc21/special/hr/index.shtml 当ページ過去ログ http://oshiete.coneco.net/kotaeru.php3?q=2508851 http://oshiete.coneco.net/kotaeru.php3?q=2558656 参考になれば幸いです

huaban
質問者

お礼

ご回答ありがとうございます。 別ブックには表形式でリストがあるのですが、そこからMax構文で 探し出す事が出来るのでしょうか?試してみます。 その後、そのデータをセル(○○○-yymmdd○)のファイル名で、 2ヶ所のフォルダにマクロで保存する方法をまた質問しますので、 わかりましたら、ご回答お願いします。ありがとうございました。

その他の回答 (1)

回答No.1

表の形式がよくわからないので 別のセル(今回はA1に)=TODAY()として B1に前日までのデータがはいっていると仮定して =IF(MID(B1,5,6)=TEXT($A$1,"YYMMDD"),LEFT(B1,10)&(RIGHT(B1,1)+1),"123-"&TEXT($A$1,"YYMMDD")&"1") でどうでしょうか?

huaban
質問者

お礼

ありがとうございます。 ○○○のジャンルのうち本日処理の何番目のものか?がわかる自動採番 の方法はないものでしょうか?最後のNo.を探し出して、番号をつけな ければなりません。別のシートの表にデータが入っています。 その後、2ヶ所のフォルダにセル(上記の番号)のファイル名で保存 しておきたいのですが、その方法も別に質問しますので、わかれば ご回答をお願いします。

関連する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"))) うまく採番できる関数式を教えて下さい。 よろしくお願い致します。

  • 自動採番について

    初心者です。 Access2000で銀行管理DBを作っています。 (1)テーブルを入金用と出金用それぞれに作成 (2)データ入力用フォームもそれぞれに作成します。 入力にあたって入力番号を自動採番にしたいと考えてますが、番号の構成は数値10桁で、"年" + "月" + "連番"の組み合わせにしたいのです。例:2003070001 入金用と出金用それぞれ別に入力番号をつけます。 これを実現するために「採番テーブル」を別に作成しなければいけないようですが、 (1)採番テーブルの定義の方法 (2)入力フォームで自動採番するためのVBA記述の方法 についてアドバイスいただけないでしょうか? よろしくお願いします。

  • ACCESSでの自動採番

    立て続けの質問お許しください。 Accessで、自動採番をしていきたいのですがアドバイスお願いいたします。 フィールド1→年度 (ex.2003) フィールド2→採番番号 (ex. 01) というものを作って、フォームでフィールド1、2ともに自動採番していきたいと考えています。 (2003 01, 2003 02,・・・・というふうに自動採番していきたい) しかし、来年の4月になったらフィールド1の年度を"2004"に自動変更し、変更後、フィールド2の値を1から取り直したいのです。このようなことを自動でやるのは可能なのでしょうか? DMAX関数を使って・・・と思ったのですが、年度が変更したときにどのようにフィールド2の値を1から取り直せばいいのかが分かりません。あと、2004年4月になって初めてフィールド1の値を2004と更新したいのですがどうやればいいかわかりません。 どなたか詳しい方お願いします

  • Accessで指示書番号の自動採番

    入力フォームで指示書番号が自動採番され、テーブルにも保存されるようにするための方法を教えていただけないでしょうか。 テーブル:T_指示書 フィールド:指示書番号 フィールドはテキスト型で、番号の構成は8桁の番号で "年(二桁)" + "月(二桁)" +"部署番号(一桁、固定の数字)"+ "連番(三桁)" (例:09091001) という感じで、 年月が変われば、連番が001になるようにしたいです。 どなたか、ご教授いただければありがたいです。 よろしくおねがいします。 Access2002 winXP

  • Access 文字+年ごとの自動採番

    Accessは全くの初心者です。 プログラマーさんのサイトや質問サイトを参考に、初めてデータベースを作っているのですが、 どうしても文字+年ごとの自動採番がうまくいきません。 挿入前処理で「営250001」のように漢字1文字+和暦2桁+4桁連番にして、 年が変わるごとに4桁連番を0001に戻したいのです。 今入力してあるコードは以下の通りです。 ----------------------------------------------------------------------------- Private Sub Form_BeforeInsert(Cancel As Integer)  Dim vDt As Variant  vDt = DMax("番号", "営テーブル", "番号 Like '" & Format(Date, "ee") & "*'")  If (IsNull(vDt)) Then   番号 = "営" & Format(Date, "ee") & "0001"  Else   番号 = "営" & Left(vDt, 2) & Format(Val(Right(vDt, 4)) + 1, "0000")  End If End Sub ----------------------------------------------------------------------------- この状態では、0001のまま採番が進まず、行き詰ってしまいました。 他の質問者さんが(Date,"ee")を(Now,"nn")に置き換えて、分ごとの採番を試していたのを参考に、 「"営"&」を取って、採番が進むところまでは確認できました。 使っているのはAccess2003です。 どうか、よろしくお願いします。

  • Microsoft Accessで自動採番をさせたい。

    いつも大変お世話になっております。 アクセスでの質問です。 フィールドに「管理ID」があって、ここに8ケタのコードが自動採番されるようなしくみにしたいと考えています。 この管理IDは8ケタで、採番の仕組みは以下の通りです。 (1)「アイテム分類」というフィールドに入った製品によって頭2桁が決まる。 例)野菜・・・YA   果物・・・KU   鮮魚・・・SE (2)入力しているのが06年07月だったら次の4桁は「0607」になる。 ここまでで、頭の6ケタ「YA0607」などまでが決まる。 最後の2桁は、その月に発生している情報の連番をつけていきたい。 例) 06年07月に1番目に採番されたデータ→YA060701 06年07月に5番目に採番されたデータ→YA060705 という具合に・・・ これにはたくさんの要素がつまっています。 要素(1) 採番するフィールド以外のフィールド(アイテム分類)を見て、頭2文字を決めること。(ただし、規則はありますので、DBで表すことはできます) 要素(2) 現在のDATEから、年と月だけ4桁拾うこと 要素(3) 過去に発生しているレコードを抽出・カウントし、最後の数字の+1になる番号をつける ということです。 上記のようなことが可能なのでしょうか? 分かりましたら、できるだけ具体的に教えてください。よろしくお願いします。m(_ _)m

  • 伝票番号の自動採番について

    伝票番号の採番で、西暦+5桁という仕様です。 これを、年が変わってから入力する際に 新しい年(度)+00001 としたいのですが、どのようにプログラムを組んだらいいのか分かりません。 ちなみに今までのプログラムでは Format関数や、DMax関数を使って自動採番していました。 Access2000での開発です。 どうぞよろしくお願いします。

  • ACCESS+SQL Serverで主キーを自動採番する

    ACCESS+SQL Serverで主キーを自動採番する ACCESSを独学で勉強を開始しているものです。 顧客管理のようなものを作りたいと思っているのですが、 オートナンバーではない主キー(顧客コード)を設定しているテーブルがあります。 顧客コードの構成はアルファベット1文字+数字8桁です。 そのうち、数字は西暦2桁+月2桁+日2桁+下2桁は連番です。 ACCESS2007プロジェクトで、SQL Server 2005 Express Editionへ接続しテーブルは作ってあり、既に顧客データが10件ほど入っています。 新規に顧客データを追加する際に、必要事項を入力し、登録ボタンを押した段階で顧客コードを自動生成し、重複チェックし、採番したいと考えています。 アルファベットは必要事項入力時に入力済み、日付もその日の日付を6桁設定し、とりあえず「01」と下2桁を採番して、現在のデータに同じものがないかチェックします。 そして、同じものがあれば「01」+1を繰り返しながらチェックしていくというようなコードはどのようにすればいいでしょうか? わかりづらいとは思いますが、よろしくお願いします。

  • 文字を含むIDの自動採番

    Access2013を使っています。 IDはテキスト型で、 A00000000 っていう書式なんですが、 新規レコード作成時のイベントで、ID自動採番(連番をふる)をしたいのですが、下記だと最初の1レコード(A00000001)以降がエラーになってしまいます。 Format(Nz(DMax("ID", "T_テーブル名"), 0) + 1, "\A00000000" ) もちろん、すでにあるIDがA00000001なので、DMaxが使えないんですが、どうやって分けてやったら良いのかわかりません。 やりたい結果は、新規レコード作成時に、IDが"A"&"8ケタの最大値+1"が自動に振られて、テーブルのIDフィールドにA00000001、A00000002・・・とデータ保持したいのです。 説明が判り辛くて恐縮ですが、ご教示お願いします。

  • ファイルメーカーでの自動採番

    ファイルメーカー9での質問です。 現在受発注管理を作成しており、それにあたり、 受注IDを自動生成したく、日付+連番とさせたいのですが、 その方法がわかりません。 例えば「受注日」が2008/11/22の場合は、 「20081122+連番」のような採番をしたいのですが、 MAX関数では、最終のものしかとれず、 仮に昨日受注分を入力する際には、不向きです。 この件に関し、おわかりの方がいらっしゃれば、 ご教授よろしくお願いいたします。

専門家に質問してみよう