• ベストアンサー

エクセルなんですが、定数の入力を省略できますか?

1つのセルへ入力する数値が 月(2桁)と4桁の伝票の番号を合わせた6桁の伝票番号を設定します。 伝票の番号は変動するものですが頭の2桁の月は同じ数字ですよね。その場合4桁の伝票の番号の入力だけで月も表示される方法はあるんでしょうか? 例えば 4月に126番目に発行した伝票は 4月で04、126番は0126で 040126という伝票番号になります。 これを0126の入力だけで 040126 という数字は表示する方法はあるんでしょうか? 設定できる関数あれば教えて下さい。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

セルの書式設定で表示形式をユーザー定義にして "04"0000 とすれば可能です。 ただ月が変わるごとに再設定しなければいけません。 行数が2行目から連番とかなら ="04"&TEXT(ROW()-1,"0000") みたいにできますが...

itigopa
質問者

お礼

設定はひと月に一回なので苦にはならない作業です。ユーザー定義から簡単に設定できました。大量のデータなのでこの方法で入力したら時間短縮にもなりました。 どうもありがとうございました。

その他の回答 (5)

  • k77777
  • ベストアンサー率66% (2/3)
回答No.6

セルの書式設定→表示形式→ユーザー定義→ 04#### OKで閉じます。 04以外の4つの数字を入力すれば、頭に04が表示されます。いかがでしょう?

itigopa
質問者

お礼

目からウロコ、忘れていました。 月も変動せず翌月以降見ても伝票番号は同じですよね。 どうもありがとうございました。

回答No.5

やり方は何種類がありますが、質問者様の思っているのとはちょっと遠くなってしまいます。 1)書式設定のユーザー設定にて「"04"0000」と入力する。 *この方法では、毎月書式の設定が必要。 2)A列に入力日、B列に番号、C列に[=TEXT(MONTH(A2),"00") & TEXT(B2,"0000")]とする。 *無駄な列が発生してしまう。 マクロ(VBA)を使用すれば思った物に近い事は出来ます。 ・マクロの記入方法 [ツール]→[マクロ]→[Visual Basic Editor]→「Sheet1」 で下記のコードを試してみてください。 ~~~ここから~~~ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row > 1 And Target.Column = 2 Then If Target.Value <> "" Then Target.NumberFormatLocal = """" & CStr(Format(Month(Now()), "00")) & """0000" End If End If End Sub ~~~ここまで~~~ *例はSheet1で作成しました。 *Sheet1以外に表を作る場合、[Visual Basic Editor]で選ぶsheetを変えてください。

itigopa
質問者

お礼

マクロのコードをいただきありがとうございました。 マクロを使う方法もあるんですね。ただ、時間や日付の関数を使うと当月以外では月を示す2桁が変わってしまうため実用できないのが残念です。いろいろと考えていただきありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

月が替われば都度変更が必要ですが、以下の書式設定で如何がでしょうか。 ・書式設定→ユーザ設定→"04"@

itigopa
質問者

お礼

ユーザー定義での設定で””の後が0000や####ではなく@でも使えるんですね。@を使った場合文字として認識されるんですね。教えていただいてありがとうございました。

  • lexanblue
  • ベストアンサー率27% (26/94)
回答No.3

セル 関数       設定、説明 A1  =today()     今日の日付を自動表示 A2  空欄       伝票の通し番号 126など A3  =month(A1)*10000+A2  A3を右クリックして               「セルの書式」               「ユーザ定義」               「種類」を「000000」               に設定して下さい。 ちなみにA2のセルに伝票通し番号126と入れますと A3に050126と表示されます。              

itigopa
質問者

お礼

回答をいただきありがとうございました。 私も当初TODAY関数からセルの書式設定での表示形式を考えましたが入力月では正確に表示されても以降の月で開くと月の番号が変わってしまいます。入力の性質上セルは一つで設定しなくてはならないので残念ですが実用できませんでした。

  • kaeru_007
  • ベストアンサー率22% (8/36)
回答No.1

=LEFT(B23,2) 04を表示したいセルにかくと、 出来ないことはないです。 B23ってのは、伝票番号のセルに書き換えてください。

itigopa
質問者

お礼

アドバイスをありがとうございました。 やってみたんですが”#REF!”となってしまいました。残念です。

関連するQ&A