Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Microsoft 365)
datevalue関数で変換した日付の年だけ修正したい
投稿日時: 23/03/14 05:54:12
投稿者: ip8bk

いつもお世話になっております。
下記のC1の結果が2023/12/23になります。これをA1に入力されている年に変換したい(2022/12/23)のですが、どのようにしたらよろしいでしょうか?
 
A1 B1 C1
2022 '12月23日 6:44 =DATEVALUE(B1)

回答
投稿日時: 23/03/14 08:07:23
投稿者: んなっと

   A     B      C
1 2022 12月23日 2022/12/23
 
C1
=DATEVALUE(A1&"年"&B1)
 
 
 6:44は何かの間違いでしょうか。削除しておきました。

投稿日時: 23/03/14 09:09:02
投稿者: ip8bk

ご回答ありがとうございます。
説明不足で申し訳ございません。
最終的にはD1セルの日付との差が何日あるかをE1セルに表示させたいです。
小数点第一位まで計算したいのでC1セルも時間まで表示させたいです。
C1セルは2022/12/23ではなく2022/12/23 6:44になります(m_ _m)
この場合C1セルにDATEVALUEは使えますでしょうか?
  
   A     B      C            D        E
1 2022 12月23日 2022/12/23 6:44 2022/12/27 12:22:00 D1-C1

回答
投稿日時: 23/03/14 09:19:45
投稿者: WinArrow
投稿者のウェブサイトに移動

6:44がセルC1に入っているならば、C1に数式は入力できませんが、
6:44が固定値ならば
=DATEVALUE(A1&"年"&B1)+TIMEVALUE("6:44")
になります。

回答
投稿日時: 23/03/14 09:23:46
投稿者: んなっと

つまりこういうことですね。
 
   A       B        C
1 2022 12月23日 6:44 2022/12/23 6:44
 
C1
=LET(a,TEXTSPLIT(B1," "),(A1&"年"&INDEX(a,1))+INDEX(a,2))
 
↓最初の質問文の、この部分はおかしいと思います。ならないはずです。

引用:
下記のC1の結果が2023/12/23になります

回答
投稿日時: 23/03/14 10:02:03
投稿者: んなっと

もしもB1の '12月23日 6:44 が違っていて、
実は2023/12/23 6:44:00というシリアル値、表示形式で m"月"d"日" h:mm としているなら、
 
   A       B        C
1 2022 12月23日 6:44 2022/12/23 6:44
 
C1
=(A1&TEXT(B1,"!/m/d h:mm"))*1

回答
投稿日時: 23/03/14 10:22:41
投稿者: WinArrow
投稿者のウェブサイトに移動

推測ですが、
B1には、TEXT関数で別セルを参照しているとか?
別セル:2023/12/23 6:44 だったりしませんか?

投稿日時: 23/03/14 10:29:18
投稿者: ip8bk

ご回答ありがとうございます。
関数が複雑になると運用できるか不安だったので、textsplitで日付と時間をC1D1に分解してdatevalueとtimevalueの組み合わせでE1に表示させることにしました。
何度もご回答くださってありがとうございました。
本件解決いたしました。
 
   A     B      C D E
1 2022 12月23日 6:44 =textsplit(b1) 6:44 =DATEVALUE(A1&"年"&C1)+TIMEVALUE(D1)