プロが教えるわが家の防犯対策術!

ロット番号を決めているのですが
エクセルの単セルに
日付を入力するだけで
単セルに表すことは可能ですか?


2019: J
5月 : E
21日:Y1

2019/5/21=JEY1
です。

どうかよろしくお願いいたします

「ロット番号を自動で表したい」の質問画像

A 回答 (5件)

日付がA1にあるとして、


ロットを表示したいセルに
=INDEX({"J","K","L","M","N","O","P","Q","R","S","T","U","V"},YEAR(A1)-2018)&INDEX({"A","B","C","D","E","F","G","H","I","J","K","L"},MONTH(A1))&INDEX({"W","X","Y","Z"},INT(DAY(A1)/10+1))&MOD(DAY(A1),10)
と入力してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
長年考えていたのですが
おかげさまで
可能になりました。
本当に助かります。

お礼日時:2019/12/15 06:44

マクロ(VBA)を使用してもよければ、以下のようなユーザー定義関数はいかがですか?


A1セルに「2019/5/21」と入力されていたら「=ロット番号(A1)」とスッキリ出来ます。

Function ロット番号(日付 As Date) As String
 ロット番号 = _
  Chr((Year(日付) Mod 26) + 57) & _
  Chr(Month(日付) + 64) & _
  Chr(Int(Day(日付) / 10) + 87) & _
  Right(Format(日付, "dd"), 1)
End Function
    • good
    • 0

以下のような計算式はいかがですか?



A1セルに「2019/5/21」と入力されていたら「=CHAR(MOD(YEAR(A1),26)+57) & CHAR(MONTH(A1)+64) & CHAR(INT(DAY(A1)/10)+87) & MOD(DAY(A1),10)」
    • good
    • 0
この回答へのお礼

前回に引き続き
ご回答ありがとうございます。
ご提案いただいたマクロ(VBA)
大活躍しています。

お礼日時:2019/12/15 06:47

入力された日付のセルを基に(例えば A1に入力)


=YEAR($A$1) で年が
=MONTH($A$1) で月が
=DAY($A$1) で日にちが
個々に抜き出せす
更に、抜き出した日にちを十の位と一の位に分けるには
一の位:=MOD(DAY($A$1),10)
十の位:=MOD(ROUNDDOWN(DAY($A$1)/10,0),10)

画像の様な対応する一覧表が有れば
VLOOKUP関数若しくは、INDEX・MATCH関数の組み合わせで個々に
一覧表から抜き出し
それを 最終的に =年&月&&日の十の位&日の一の位 と表から抜き出した物を&を使い
繋ぎ合わせるだけです。

作業エリアが必要ですが、これが一番オーソドックスなやり方でしょう
    • good
    • 0

一番簡単なのは、年月日に対するロット番号の表を作成し、


Lookup関数で引用すること。

他は、年月日のそれぞれに対して、ロット番号への変換表を作成して、
Lookup関数で引用し、「&」で文字結合すること。

このような元表を作成することで、変換規則が誰にでもわかりやすくなり、
誤解が減ります。
直接関数で変換すると、その規則性の理解が阻害されてしまうでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています