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

社員名簿など数百人単位の名簿に生年月日を入力します。(この生年月日から年齢を求めることはできた)

例えば、2003/03/11と表示させたいです。この表示を関数で行うことできますか?

*上記の例の場合、5文字目と8文字目に/を入れ、3の前に数字の0を入れたいです。
そして、数字だけ入力したらオートフィルに対応するようにしたいのです。

後で調べるので、ヒントだけ教えていただいてもかまわないです。

よろしくお願いします。

質問者からの補足コメント

  • 質問読んでイメージ出来ないのか、的外れな回答者ばかりです。
    関数でできるかを聞いているので、わからないのなら回答しないでください。

      補足日時:2023/07/06 17:23
  • ちなみに、自分で調べてできました。

      補足日時:2023/07/06 17:23
  • ありがとうございます。

    表示形式でやると、できないんですよ。数式がエラーになったので、その手法を取らなかったのかと思ったのですが、そもそもできませんでした。

    No.3の回答に寄せられた補足コメントです。 補足日時:2023/07/07 08:18

A 回答 (4件)

セルの書式設定じゃダメですか?

    • good
    • 0
この回答へのお礼

できないです。

お礼日時:2023/07/06 17:21

No.3への補足やお礼を読んで、できない理由が分かりません。


TEXT関数での数式を入れたセルはシリアル値にはなったのですよね?
(新規シートでもよいので試してみたのでしょうか?)
シリアル値に変換されたのなら[セルの表示形式]を変えるだけです。
特に難しい作業とは思えませんが。

MID関数で処理するのは文字列として分解されたものを&で文字結合
されたのだと思いますが、この場合も乗算は必要です。

どちらも文字列として「2003/03/11」となったものを乗算で数値に
変換するものなので、結果的には同じ処理になります。
この結果を別のセルで年齢をだすことは、どちらの数式でも同じで、
TEXT関数で別セルでの関数処理ができないと思うのは勘違いです。
    • good
    • 1

No.2の回答者です。


余計なお世話な回答でしたか。関数のみの説明を希望ですね。

8桁入力は絶対なので、0を補うのは無理だというのは同じです。
関数の場合は、TEXT関数で処理します。
 =TEXT(A1,"0000!/00!/00")*1
または
 =TEXT(A1,"0!/00!/00")*1
https://www.crie.co.jp/chokotech/detail/462/
https://www.relief.jp/docs/001896.html
!(エクスクラメーションマーク)で、3桁目の後ろと5桁目の後ろに
区切り文字を入れることができます。
https://exceljoshi.cocoo.co.jp/media/excel-numbe …
乗算を1にすることで数値(シリアル値)に変わります。
セルの表示形式をyyyy/mm/ddにすれば、希望の表示になります。

ご自身で調べてできたのなら、この回答も余計でしたでしょうか。
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとうございます。

MID関数3つでできたんですけど、改めて立てた質問でも、同じ数式で回答した方がいました。

表示形式で設定してしまうと、関数使えなくなりませんか?

お礼日時:2023/07/07 08:11

数字だけを入力して日付に変換したいのなら、最低でも8桁での


入力をしてください。
例として出されている「2003/03/11」を「2003311」と入力し、
これを「2003/03/11」という意味での質問ですよね。
例のような場合は問題ないですが、「2003/01/11」の生年月日の
社員がいた場合、入力は「2003111」の7桁での入力となります。
これだと「2003/01/11」なのか「2003/11/01」なのか定かでは
ないので、間違った情報になる可能性が高いです。
ですから、最低でも「20030111」と0を省略しないでの入力して
間違いが出ないようにしてください。
(セルの書式は[文字列]で指定しておくこと)

そのうえで8桁の数字を日付として認識させるには、以下のサイト
での説明にあるように[区切り位置]で対応します。
https://www.crie.co.jp/chokotech/detail/461/
https://kokodane.com/2013_waza_067.htm#:~:text=% …
マクロや関数で処理させる方法もありますが、今後も日付としての
利用を考えるのなら、[区切り位置]で日付に
    • good
    • 0
この回答へのお礼

そんなこと聞いてませんけど?

お礼日時:2023/07/06 17:20

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