プロが教えるわが家の防犯対策術!

タイトルの件、以下のとおり
【関数適用前】も文言を【関数適用前】の表示へ変更をしたいです。

ご存じの方、ご指導お願いします

【関数適用前】
2023-01-01~ 2023-12-31

補足⇒2023-01-01~の後に半角スペースがある
補足⇒月が2ケタ表示なので、01月は1月としたい。他、10月等は、そのままでOK
補足⇒数字は全て半角です

【関数適用後】
2023年1月1日~2023年12月31日

A 回答 (4件)

No.3です。



ご質問者の疑問のとおり、今回のご質問では*1をなくして、

=TEXT(LEFT(A1,10),"yyyy年m月d日")&"~"&TEXT(RIGHT(A1,10),"yyyy年m月d日")

という数式にしても問題ありません。

というより、殆どの場合*1は不要と言えます。
ただし、EXCELでは日付はシリアル値として扱うというのが基本です。

例えば、以下の手順を試してみてください。
(1)セルに「2023/7/12」と入力し「2023/7/12」と表示させる
(2)そのセルを右クリックして、「セルの書式設定」を選択する
(3)「日付」が選択されているので、「標準」を選択しなおし、OKを押す
(5)セルの値が「45119」という表示に変わる

上記手順で判るとおり、普通に日付を入力した場合、日付に見えているのは、実はシリアル値という数値なのです。
そこで、「日付けはシリアル値として扱う」という大原則を適用し、シリアル値に変換するため*1を用います。

つまり、ご質問者の掲示の例で、A1セルに
2023-01-01~ 2023-12-31
があるとすると、B1セルに
=LEFT(A1,10)・・・①
という数式では「2023-01-01」と表示されますが、このままではシリアル値ではありません。
試しに、別シート(例えばSheet2)のA1に「2023-01-01」と入力すると「2023/1/1」と表示されます。
C1セルに
=B1=Sheet2!A1・・・②
という数式を記述してみてください。この数式は現在のシートのB1セルとSheet2のA1セルが等しいかをチェックするものです。

両方とも日付けであり「2023-01-01」と「2023/1/1」という表記方法の違いはありますが、そもそもSheet2のA1には「2023-01-01」と入力しており、同じ日付のはずです。しかし、②の数式の結果は「FALSE」つまり「等しくない」という結果になります。

次に①の数式に*1をつけて
=LEFT(A1,10)*1
としてみてください。
するとC1セルの表示が「TRUE」となるのが確認できると思います。
つまり、シリアル値に変換したことで、EXCELは日付として認識し、表記方法が異なっていても同じ日付として認識できるということになります。

このように、「*1」はシリアル値に変換するためのものです。
今回のケースではあってもなくてもよい「*1」ですが、VLOOKUP関数やMATCH関数などを用いて、既存データが入力した日付と一致しているものを探すというようなケースでは、上記のようにシリアル値でないと一致が確認できないことになりますので注意が必要です。
    • good
    • 0
この回答へのお礼

大変、大変、勉強になりました。シリアル値に、変更するための
算式なんですね。ありがとうございます。

お礼日時:2023/07/12 14:15

添付図参照(Excel 2019)


 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓
「【関数】ハイフン(-)を月や日に変えたい」の回答画像4
    • good
    • 0

ご質問者が掲出されたデータ


2023-01-01~ 2023-12-31
がA1セルにあるとすると別のセルに、

=TEXT(LEFT(A1,10)*1,"yyyy年m月d日")&"~"&TEXT(RIGHT(A1,10)*1,"yyyy年m月d日")

という数式を記述すると、
2023年1月1日~2023年12月31日
と表示されると思います。

A1セルの値そのものを変えたいのであれば、当該数式で変換された後の文字列を右クリックしてコピーし、A1セルに値とし貼付け後、数式記入セルを削除すればよいでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。適用できました。
1点、質問ですが

以下、関数の *1 はどういう意味でしょうか。かける1
という意味かとは思うのですが。なぜ、かける1をしているのかが
わかりません。

=TEXT(LEFT(A1,10)*1

よろしくお願いします。

お礼日時:2023/07/12 10:46

》 【関数適用前】も文言を【関数適用前】の表示へ変更をしたい


それ、どういう意味ですか?
    • good
    • 0
この回答へのお礼

申し訳ございません。誤字です。以下が正しいです

【関数適用前】も文言を【関数適用後】の表示へ変更をしたいです。

お礼日時:2023/07/12 10:47

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