• ベストアンサー

ExcelのDATEDIF関数で月日のスペース

don9don9の回答

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.4

見かけだけの問題であれば、既に他の方が回答されている通り、セルの表示形式で変えるのがいいと思いますが、別解として実際にスペースが入ってしまっている場合にどういう式になるかを回答してみます。 例えば、A1セルに生年月日が入っていて、DATEDIF関数の式が =DATEDIF(A1,TODAY(),"y") である場合、「A1」の部分を「SUBSTITUTE(ASC(A1)," ","")」と変えればいいです。 =DATEDIF(SUBSTITUTE(ASC(A1)," ",""),TODAY(),"y") ASC関数は、全角文字を半角に置き換える(全角しかない文字はそのまま)関数です。 SUBSTITUTE関数は、文字列の中から特定の文字(文字列)を探して置き換える関数です。 " "(半角スペース)を""(空文字列)に置き換えることで、半角スペースを取り除くことができます。 人が手入力する場合、スペースに全角スペースと半角スペースが混在してしまう可能性が多々ありますので、いったんASC関数で文字列全体を半角文字に置き換えた後、半角スペースを除くようにしています。

Kuma2000
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • エクセル DATEDIF関数

    色々調べたのですがよくわかりません。 DATEDIF関数で年齢計算させたいと思います。 適当なセルに本日の年月日を表示させ、 A列に生年月日、B列に年齢を出そうと思います。 そのため、B1にDATEDIF関数を入れ、B2から下の行に、この関数をコピーしました。 この結果、A列に生年月日を入れれば隣のB列に年齢は出るのですが、A列に生年月日を入れなくても、B列には生年月日を1900年とした年齢が表示されます。 (今年なら118歳が表示されます。) 生年月日を入れていない行には年齢を表示させたくないのです。 入力した人だけの平均年齢を出したいのですが、この118歳が邪魔になります。 どうすればいいのでしょうか。

  • ExcelのDATEDIF関数を使って年齢を出しても正しく表示されません

    今、調査のためにExcel2003の関数を使って、年齢を出す作業をしようとしています。 同じような質問を参照してやってみたのですが、以下のように現れます。 セルD2:「1982/1/1」←生年月日 関数:「=DATEDIF(D2,TODAY(),"Y")」 その結果表示された値:「1900年1月26日」 なぜ年齢が表示されないのかが疑問です。 どうか宜しくお願いします。

  • エクセル関数 DATEDIFについて

    エクセル関数が得意な方、答えが合っているか確認してください。 Q.Aさんの生年月日は1973/5/9で、2011/4/1現在の年齢を計算したい場合、 =DATEDIF(生年月日1973/5/9,2011/4/1現在,"y") ※実際には生年月日などのところに入っているのはセル番ですが・・・ 答えは37歳 Q.Aさんの入社日は1998/5/12で、2011/4/1現在の勤続月数を計算したい場合、 =DATEDIF(入社日1998/5/12,2011/4/1現在,"m") 答えは154月数 私のやり方と答え、これであっているのでしょうか? よろしくお願いします。

  • EXCELで年令計算するDATEDIF関数

    EXCELで年令計算する関数DATEDIFを使って、生年月日の記入をすると年令を表示しますが、 記入がないと 111才 になってしまいます。生年月日の記入がないときには 0才 にしたいのですが、わかりません。   たとえば、生年月日のセルを         B12         基準日(関数TODAY()を使用 )を E3         年令表示セルを           B11 にして、セルB11に次の関数を入力します。     =DATEDIF(B12,E3,"Y") & "才" すると、生年月日がセルB12に入っていれば、年令を表示しますが、生年月日の記入がない(空欄)と111才と表示されてしまいます。空欄では0才などにしたいのですが、ご教示をお願いします。 セルの西暦・和暦やTODAY関数が影響するのかわかりません。

  • 関数のDATEDIFに替わるものについて教えてください。

    関数のDATEDIFに替わるものについて教えてください。 入社年月日から今現在の勤続年数を『何年何ヶ月』と表示したいのですが、 エクセル2000にDATEDIF関数がありませんでした。 関数が苦手なので分かりやすく教えてください。 よろしくお願いします。

  • エクセル 関数のあわせ技 

    お世話になります。 最終目的は年齢表示です。 生年月日の元データは他システムからCSVカンマ形式で出力されたものをエクセルで表示しているため、問題箇所があります。 ・年月日のいずれかが一桁の場合、「空白」+「半角数字」+「年月日」となっています。   例えば、昭和20年5月1日   の場合は         昭和20年 5月 1日 となっています。(数字は半角です) ・元データのほとんどはテキスト形式なのですが、一部日付データ形式があります。   セル表示は「元号+年月日形式」ですが、数式バーは西暦表示です   例えば、昭和24年12月11日 とセル上は表示されますが、         1949/12/11   と数式バーでは表示されます。 まず、生年月日データに混じっている空白を消すため、SUBSTITUTE関数を使って別の列に書き出しました。 =IF($J3="","空白行",SUBSTITUTE(AM3," ","")) これで、昭和20年 5月 1日は昭和20年5月1日になりました。 その後、DATEDIF関数で年齢を表示させました。 =IF(ISERROR(DATEDIF(AJ3,today(),"Y"))=TRUE,"",DATEDIF(AJ3,today(),"Y")) ただし、日付データの 1949/12/11 のセルは、18243 になってしまいました。 これでも年齢計算はできるのですが、生年月日確認用に使いますし、後で印刷時に利用するデータですので、「テキスト形式」として、昭和24年12月11日 と表示させたいのです。 上記の関数式に別の関数を組み合わせればいいのだろうと思いましたが、うまくいきません。 どうか、よろしくご教示ください。  

  • エクセル2007の関数 DATEDIF

    現在の状況は 関数の挿入をクリックして、 「関数の分類 すべて表示」で検索しても、DATEDIFが見つかりません。 「何をしたいか」に DATEDIFを入力しても、DATEDIFが見つかりません。 セルに直接 =DATEDIF(*,*,"*") 入力すれば正常に結果は表示されます。 office2007の修復をしても改善できません。 質問 「直接入力」する方法では未熟なために、引数の順番を間違えたりするので、できれば 「関数の挿入」機能を使いたいです。 添付図の赤色矢印の位置に DATEDIF を表示させる方法を教えて下さい。

  • エクセルのDATEDIFで

    名簿でDATEDIF関数で年齢を計算しているんですけど 年齢のほかに ’雇い入れ年月日’ なるものと ’経験年数’なる項目があります 就職してずーと同じ会社に所属している人は年齢と同じ計算ですが 途中入社ではあるが経験年数が長い場合 DATEDIF関数で計算できるんでしょうか 多分簡単に計算できると思うんですけど... 教えてください

  • DATEDIF関数が機能しない理由は?

    DATEDIF関数を用いて正確な期間(年、月、日)を求めたいのですが、 自分で作表したEXCELシートで指定してみても、「エラー508」と表示 されてうまく機能しません。 どうしてこうなるのか理由を教えて下さい。 

  • DATEDIF関数について

    「よくわかるExcel2013応用」FOM出版というテキストを使ってエクセルを自習しています。 テキストにDATEDIF関数というのが出てくるのですが、入力しても#NAME?と表示されてしまいます。テキストには DATEDIF(古い日付,新しい日付,単位)と説明してあり、例題として現在の日付と入社年月日を引数として勤続年数を求めるようになっています。 関数の挿入ボタンをつかってすべての関数を表示させてもリストにDATEDIFというものが出てこないのでそこらへんから何かおかしい感じがするのですが、どなたか原因、詳細などおわかりになられる方がいらっしゃいましたらご教示願えると助かります(ちなみにエクセルはテキストと同じバージョン2013を使用しております) どうぞよろしくお願いいたします。