[[20250418160932]] 『日付型と文字列を置換』(P3) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『日付型と文字列を置換』(P3)

AL2=IF(AK2="","",IF(H2<1900,TEXT(AK2,"M月d日"),TEXT(AK2,"M月d日")))
H2=数値が1900以上の時、AK2=1900年1月1日と入力→AL2=1月1日
H2=数値が1900以下の時、AK2=1899年1月1日と入力→AL2=1899年1月1日になってしまうのですが、H2が1900以下の時でも1月1日と月日のみ変換はどうすればいいですか?

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 1900年より前は日付ではなく文字列なので、=MID(AK2,6,LEN(AK2)-5) などとしてはどうですか?

(xyz) 2025/04/18(金) 16:23:49


出来ました
どうもありがとうございました
(P3) 2025/04/18(金) 16:53:35

 =MID(AK2,6,6)
 
(TI) 2025/04/18(金) 21:07:19

TIさま
どうもありがとうございます
1桁〜3桁の西暦の時、左側の月日が
それぞれ欠けていってしまいます
(P3) 2025/04/19(土) 05:58:35

 >1桁〜3桁の西暦の時
 年が1桁〜3桁ということなんですかね?

 >左側の月日がそれぞれ欠けていってしまいます
 左側の月日とは?
 794年4月19日が「月19日」になるということ?

 >=MID(AK2,6,LEN(AK2)-5)
 この式では問題なかったんですか? 同じことでは?

 1900年より前の日付はすべて文字列なら
 =REPLACE(AK2,1,FIND("年",AK2),"")

 そもそも、H2が1900未満の時、AK2の日付は必ず文字列なんですか?
 それも心配になってきました。
 それとも、AK2の日付は、年が4桁の場合も含めて、すべて文字列なの?

 シリアル値と文字列が混在しているのなら、
 数値か文字列かで処理を分けた方がいいでしょう。

 =IF(AK2="","",IF(ISNUMBER(AK2),TEXT(AK2,"m月d日"),REPLACE(AK2,1,FIND("年",AK2),"")))
 
(TI) 2025/04/19(土) 08:24:20

 >=REPLACE(AK2,1,FIND("年",AK2),"")
 =MID(AK2,FIND("年",AK2)+1,6)
 でも
(TI) 2025/04/19(土) 09:32:18

紀元後1桁〜3桁もあり紀元前も1〜3桁がありました
794年4月19日は月19日でした
最初のMID関数は後で駄目なことがわかり
再回答があり助かりました
IF関数のとREPLACE関数ので出来ました
どうもありがとうございました

(P3) 2025/04/19(土) 16:39:35


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.