
もし〜ならの関数を作るのですが
含むの「*」のワイルドカードをつかって、
尚且つ複数条件の分岐で関数を組むことは出来るのでしょうか?
出来るのであればその関数を教えて欲しいです。
例えば
=IF(COUNTIF(P1,"有り"),IF(COUNTIF(N1,"*月*"),EOMONTH(SUBSTITUTE(N1,".","年")&"1日",0),EOMONTH(N1,0)),IF(COUNTIF(N1,""),"",EOMONTH(N1,0)))
これだとエラーになる部分があり、どうすればいいかわかりますか?
P列が有りと書いている時とN列が○月と書いてあるときはN列のものをその月の末日の日付を出す(例えば7月と書いてたら7/31としたいです)、
あとはN列が空欄であれば空欄にする、それ以外は○/○(例えば6/25)の形式なのでそれはその月の末日の日付を出す(6/30)としたいのです。
他のやり方の関数でもいいのでわかれば教えていただきたいです。
ちなみにスプレットシートで行全てに反映したいのですが、
ARRAYFORMULAだとCOUNTIFがあると反映しないと調べたらでてきたのですが、
もし他のやり方でもあれば教えてほしいです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No1です。
>日付データが〇/〇の形式(例えば5/25)と〇月(例えば7月)と
>〇〇〇〇.〇月(例えば2022.4月)の形があるので~~
上記に限定してよければ、単純に、
/(^\d{1,2}\/)|(\d{1,2}月$)/
で検索すれば、「5/」、「7月」、「4月」がヒットするので、最後の1文字を取り除けば月の数値になると思います。
(スプレッドシートの正規表現は先読みなどが使えないみたいなので、共通に1文字を後ろに残す形にしました)
https://support.google.com/docs/answer/3098244
厳密にやるなら、数字の最初は0、1、2のどれかに限定しておく方がよいかも。
両方に合致するような「10/12月」が入力値の場合は、(多分)「10/」がヒットするであろうと想像しますけれど、未検証なのでご確認ください。
(一応、あり得ない入力値なので考慮する必要はないのでしょうけれど…)
>他のやり方でもいいです
…とあったので、他の方法を回答してみたのですが、どうやら耳を貸す気はなさそうですね。
一応は、追加回答しておきますが、これ以上のフォローはしませんので。
No2様が既にご指摘なさっていますが、この後でも、同じ(曖昧な)内容の質問を繰り返しているようですが、お行儀が悪いとしか思えませんね。
https://oshiete.goo.ne.jp/qa/12364656.html
https://oshiete.goo.ne.jp/qa/12364691.html
No.2
- 回答日時:
>=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/12358897.html
で本件関連のご質問をしておられるようです。
不明な点をご質問されるのはかまわないのですが、複数の質問を同時にされて、すべて解決するまで過去の質問を放置状態にするのは、マナーとして感心できません。
過去の回答者の回答を参考にして本件数式を組み立てられているようにみうけられますので、一件づつクローズするようにされたらいかがでしょうか?
No.1
- 回答日時:
こんにちは
ご説明をよく理解できていませんが、まず、条件を整理してみた方がよさそうに感じられます。
なんとなく、「N1が日付ならその月末を求め、それ以外は空白」でよさそうに思えますけれど?
P列の値は(多分)関係なさそうに思われます。
>ちなみにスプレットシートで行全てに反映したいのですが
スプレッドシートとエクセルは完全互換ではないですし、スプレッドシートはよく知りませんけれど・・・
ですので、以下は、未検証ですが。
N1セルの値が取り得る範囲は、「hoge」のような完全な文字列もあり得るのでしょうか?
Date型か空白に限定できるのなら、ISDATE関数でチェックすればそれで済みそうに思われます。
あるいは「hoge」や「今年の6月から」みたいな文字列から、(後者の)「6月」を抜き出して月末を求めたいというようなケースも含まれるのでしょうか?
こちらの場合は、エクセルではかなり面倒ですが、スプレッドシートなら正規表現(=REGEXMATCH関数)が使えるようですので、/\d{1,2}月/などで簡単にマッチさせられるのではないかと思われます。
以上から、こちらの場合でも、
「N1に月の値が存在すれば月末を、それ以外は空白を」返す関数でよさそうに思われます。
月末に関しては、ご提示の通りEOMONTHで求められるので、省略します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) 週毎の集計 2 2023/08/04 16:56
- Visual Basic(VBA) VBAで列を削除 3 2023/02/01 11:00
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) VBA EOMonthについて 5 2023/02/10 11:51
- Excel(エクセル) If関数に関する質問です。(再掲) 3 2022/10/01 20:51
- Excel(エクセル) 重複しているか否かをソートせずに判断する方法ありますか? 2 2022/07/06 21:16
- Visual Basic(VBA) この関数と同じ処理をVBAで行うにはどうしたら良いでしょうか? これは、1列の中に同じ値が複数存在し 21 2022/07/07 07:48
- Excel(エクセル) スプレットシートの関数 3 2023/04/07 11:49
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
【Excelで「正弦波」のグラフを...
-
値が入っているときだけ計算結...
-
検便についてです。 便は取れた...
-
EXCELで式からグラフを描くには?
-
彼女のことが好きすぎて彼女の...
-
風俗店へ行く前のご飯
-
ある範囲のセルから任意の値を...
-
2つの数値のうち、数値が小さい...
-
リンク先のファイルを開かなく...
-
イタリアから帰国する際、肉製...
-
エクセルで空白セルを含む列の...
-
小数点以下を繰り上げたものを...
-
MIN関数で空白セルを無視したい...
-
精子に血が・・・
-
Excel 数値の前の「 ' 」を一括...
-
ワードのページ番号をもっと下...
-
値が入っている一番右のセル位...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
イタリアから帰国する際、肉製...
-
2つの数値のうち、数値が小さい...
-
健否~書類の書き方~
-
VLOOKUP関数を使用時、検索する...
-
値が入っているときだけ計算結...
-
小数点以下を繰り上げたものを...
-
エクセルで空白セルを含む列の...
-
EXCELで条件付き書式で空白セル...
-
リンク先のファイルを開かなく...
-
ある範囲のセルから任意の値を...
-
精子に血が・・・
-
エクセルで数式の答えを数値と...
-
風俗店へ行く前のご飯
-
エクセル指定した範囲からラン...
-
一番多く表示のある値(文字列...
-
Excel 数値の前の「 ' 」を一括...
-
ワードのページ番号をもっと下...
-
MIN関数で空白セルを無視したい...
おすすめ情報
日付データが〇/〇の形式(例えば5/25)と〇月(例えば7月)と〇〇〇〇.〇月(例えば2022.4月)の形があるのでそれを全てその月の末日に直す関数を作りたいということです。 列を分けて作るとできたのですが 他で聞くと1つの関数にできそうとの事ですが、記載した関数だと〇月の形式が反映しないのです。