プロが教える店舗&オフィスのセキュリティ対策術

Excel で受付年月日及び処理期限年月日(受付年月日+任意の日数)の一覧表を作成しています。
複数の素人が入力するので、手動で入力していた時と同様にしたいと思います。
以下の条件を満たすような仕掛けを教えて下さい。

(1)230928とタイプすると和暦元号なし(必須)で23.9.28又は23.09.28と表示される。
(2)かつ、和暦日付として認識される。
(3)(1)のセルの値に任意の数値を足したら、(1)と同様の表示ができること。

いろいろ試したのですが、明治○○年とかとんでもない表示になります。
一旦印刷範囲外の別のセルに中継用の数値が表示されても構いません。
宜しく御願いします。

A 回答 (6件)

 回答番号ANo.5です。


 Excelのバージョンの違い等によって、万が一、ANo.5の関数で正しく変換する事が出来なかった場合には、ANo.5の数式中の

TEXT($A1,"平成00年00月00日")

の部分を

SUBSTITUTE("H"&TEXT(A1,"##-##-##"),"-",".")

に置換して、

=IF(ISNUMBER(SUBSTITUTE("H"&TEXT(A1,"##-##-##"),"-",".")+0),SUBSTITUTE("H"&TEXT(A1,"##-##-##"),"-",".")+0,"")

としてみて下さい。



 それから、また別の方法としては、次の様な関数でも同じ事が出来ます。

=IF(ISNUMBER(("H"&INT($A1/100)/100&"."&MOD($A1,100))+0),("H"&INT($A1/100)/100&"."&MOD($A1,100))+0,"")
    • good
    • 0

>230928とタイプすると



 230928だけでは平成23年9月28日なのか、昭和23年9月28日なのか、明治23年9月28日なのか判りませんが、平成以外の日付が入力される事はあり得ないと考えて宜しいのでしょうか?
 もし、平成限定だとしますと、次の様な方法があります。

 今仮に、日付を表す数字がA1セルに入力されると、B1セルに和暦元号なしの日付が表示させる様にするものとします。
 まず、B1セルに次の数式を入力して下さい。

=IF(ISNUMBER(TEXT(A1,"平成00年00月00日")+0),TEXT(A1,"平成00年00月00日")+0,"")

 次に、以下の操作を行って下さい。

B1セルにカーソルを合わせてマウスを右クリック
  ↓
現れた選択肢の中にある[セルの書式設定]を選択してクリック
  ↓
現れた「セルの書式設定」ダイアログボックスの[表示形式]タブをクリック
  ↓
「分類」欄の選択肢の中から、[ユーザー定義]を選択してクリック
  ↓
「種類」欄に次の様に入力
【「3.9.8」の形式で表示させる場合】

e.m.d


【「03.09.08」の形式で表示させる場合】

ee.mm.dd
  ↓
「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック


 尚、2行目以下にも同様の機能を持たせる場合には、上記の作業を終えてから、B1セルをコピーして、B2以下に貼り付けて下さい。
    • good
    • 0

入力セルがA1の場合、以下のような設定が簡単かもしれません。



>(1)230928とタイプすると和暦元号なし(必須)で23.9.28又は23.09.28と表示される。

セルの書式設定で表示形式をユーザー定義にして「00!.00!.00」とする。

>(2)かつ、和暦日付として認識される。

=("H"&TEXT(A1,"00!.00!.00"))*1

>(3)(1)のセルの値に任意の数値を足したら、(1)と同様の表示ができること。

この場合は、使用する条件によって最も効率的な数式が異なりますが、A1セルと同じ6桁の数字という条件で、別のセルに加算結果を表示するなら、以下のような数式になります。

=TEXT(("H"&TEXT(A1,"00!.00!.00"))*1+加算する数字,"e.mm.dd")*1
    • good
    • 0

回答No2です。


回答2の式では10928の数値のも対応できます。

なお、答えにH23.9.28のように表示されてしまいますので式の中で"ge.m.d"は "e.m.d" に変更してください。
    • good
    • 0

A1セルから下方に230928のようなデータがあるとしたらB1セルには次の式を入力して下方にオートフィルドラッグします。



=IF(A1="","",TEXT(DATE(1988+LEFT(A1,LEN(A1)-4),MID(A1,LEN(A1)-3,2),RIGHT(A1,2)),"ge.m.d"))

また その後の日数をC1セルに5のように入力してその結果をD1セルに表示させるためにはD1セルに次の式を入力します。

=IF(B1="","",TEXT(B1+C1,"ge.m.d"))

この回答への補足

ご回答ありがとうございました。
残念ながら(2)の日付として認識させたところ、
10月以降、29日以降はそれぞれ認識後1桁になってしまいました。
また、年の繰り上がりもできませんでした。

補足日時:2011/09/29 14:16
    • good
    • 0

一例です。


表の構成が不明ですのでカスタマイズして下さい。

>(1)230928とタイプすると和暦元号なし(必須)で23.9.28又は23.09.28と表示される。
 ⇒入力セルの表示形式をユーザ定義で00!.00!.00とします

>(2)かつ、和暦日付として認識される。
 ⇒別セル(印刷範囲外)に以下の関数で日付シリアル値に変換する。(仮にA2に年月日入力)
  =DATE(MID(A2,1,2)*1+1988,MID(A2,3,2)*1,MID(A2,5,2)*1)
  このセルの表示形式は、ユーザ定義でe.m.d又はe.mm.ddとします
  
>(3)(1)のセルの値に任意の数値を足したら、(1)と同様の表示ができること。
 ⇒加算は(2)の日付シリアル値変換セルを使用して下さい
 

この回答への補足

ご指導、ありがとうございました。
=DATE(MID(A2,1,2)*1+1988,MID(A2,3,2)*1,MID(A2,5,2)*1)
ではなくて、ピリオドも字数に入れて
=DATE(MID(A2,1,2)*1+1988,MID(A2,4,2)*1,MID(A2,7,2)*1)
としたら、認識できたようです。
私1人では理解不足なので、同僚にも動作確認してもらっているところです。

補足日時:2011/09/29 15:34
    • good
    • 0

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