アプリ版:「スタンプのみでお礼する」機能のリリースについて

関数について質問です。 (スプレッドシート)
例えば2022.5月と入力されたセルがあるとすると、別セルで末日に、5/31に変換する関数があれば教えてほしいです。

A 回答 (5件)

https://oshiete.goo.ne.jp/qa/12364108.html
への回答がこのご質問の本質と思われます。

>=IF(COUNTIF(P1,"有り"),IF(COUNTIF(N1,"*月*"),EOMONTH(SUBSTI
>TUTE(N1,".","年")&"1日",0),EOMONTH(N1,0)),IF(COUNTIF(N1,""),"",E
>OMONTH(N1,0)))
>これだとエラーになる部分があり、どこか間違えはありますか?

まず、P列に「有り」となっているのはどのようなときなのでしょうか?
ご質問者の数式ではP列に「有り」となっているとN列の値に拘らず、月末日を計算しようとします。もしN列の値に異常値があったらどうするのでしょう?
それともP列に「有り」と入力されいる場合はN列に想定している値が入力されていることをチェック済みという意味でしょうか?
チェック済みという意味なら、数式を

=IF(COUNTIF(P1,"有り")*(N1<>""),IF(ISNUMBER(N1),EOMONTH(N1,0),IF(COUNTIF(N1,"*.*"),EOMONTH(SUBSTITUTE(N1,".","年"),0),EOMONTH("2021年"&N1,0))),"")

に修正すれば、よいのではないかと思います。

余談
https://oshiete.goo.ne.jp/qa/12358894.html
https://oshiete.goo.ne.jp/qa/12364108.html
で本件関連のご質問をしておられるようです。
不明な点をご質問されるのはかまわないのですが、複数の質問を同時にされて、すべて解決するまで過去の質問を放置状態にするのは、マナーとして感心できません。
過去の回答者の回答を参考にして本件数式を組み立てられているようにみうけられますので、一件づつクローズするようにされたらいかがでしょうか?
    • good
    • 0

No.3の


=EOMONTH(SUBSTITUTE(A1,".","年")*1,0)
 ↓
=EOMONTH(SUBSTITUTE(A1,".","年"),0)

「*1」を省略しても強引に型変換されますね。姑息ですが。
    • good
    • 0

No.2さんのご指摘のとおり、「2022.5月」が文字列ととして入力されている(シリアル値が入力されていて書式設定で「2022.5月」と表示されているわけではない)場合、これを日付(シリアル値)に変換する方法は複数あります。



このうち最も短い数式は、入力されたセルがA1だとして、

=EOMONTH(SUBSTITUTE(A1,".","年")*1,0)

ではないかと思います。数式を記述するセルの書式は「日付」にしてください。

もう少し長くてもよければ、No.2さんの数式以外にも、
=EOMONTH(SUBSTITUTE(SUBSTITUTE(A1,".","/"),"月","/1")*1,0)
とか
=EOMONTH(SUBSTITUTE(SUBSTITUTE(A1,".","-"),"月","-1")*1,0)
などでもOKです。これも数式を記述するセルの書式は「日付」にするものとします。
    • good
    • 0

「2022.5月」は文字列なので、日付として認識できるようにします。


日付にするのに幾つかの方法がありますが、これは一例です。
入力したセルがA1だとして、、末日のセルに
 =EOMONTH(DATE(LEFT(A1,4),MID(A1,6,LEN(A1)-6),1),0)
を入れます。(今回はDATE関数で日付を認識)
    • good
    • 0

2022.5月と入力されたセルをA1とすれば、


=A1&"5/31"
    • good
    • 0

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