『日付に纏わる複数条件』(aska) 初歩的な質問だと思うのですが、分かる方がいれば助けてください。 2つの日付があって、いずれかが今日を過ぎている場合で、 かつ別のセルに特定の文言(「終了済」)が入っていない 行をチェックしたく、下記の関数を考えてみたのですが、 うまく行きません。 A B C D E 1作業中 2019/2/10 2019/4/1 ○ today関数 2終了済 2019/1/30 2019/2/1 ○ 3作業中 2018/12/31 2019/2/1 × ・ ・ Dの列に、 =IF(OR(B1>$E$1,C1>$E$1),“○”,IF(A1=“終了済”),“○”,“×”)) といれてみたのですが、うまく行きません。。 ちなみにABCの列はvlookで引っ張ってます。 何卒よろしくお願いします。 < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- あってます様に!パンパン =IF(OR(MAX(B1:C1)>$E$1,A1="終了済"),"〇","×") (SoulMan) 2019/02/16(土) 18:57 ---- >2つの日付があって、いずれかが今日を過ぎている場合で、 >かつ別のセルに特定の文言(「終了済」)が入っていない行 で、その例だとどの行が ○ になればいいんですか? 以上、確認だけ (笑) 2019/02/16(土) 19:33 ---- D列に返したいのです。 (aska) 2019/02/16(土) 19:41 ---- >SoulManさんありがとうございます! しかし、うまく返りません。。。 日付の大小がうまく返っていないようです。 (日付が今日以前でも×で返ります) (aska) 2019/02/16(土) 19:47 ---- =IF(AND(B1<$E$1,C1<$E$1,A1="作業中"),"×","○") 。。。想像ですが ご希望の結果は↑なのでは。。。。。。まちがっているかな?( ̄▽ ̄;) 。。。ご説明とはかなり相違しますが SoulManさん,はご説明の通り書いておられるのでは。。。 m(_ _)m (隠居じーさん) 2019/02/16(土) 19:50 ---- >D列に返したいのです。 それは分かってます。 例示の表、D1・D2・D3のどれが ○ になればいいんですか?と訊いてるんです。 以上です (笑) 2019/02/16(土) 19:54 ---- D1,D2が〇になればいいのですが・・・ (aska) 2019/02/16(土) 20:09 ---- 確かに、どれが〇になればいいのかの説明がありませんでした。すいません・・・ (aska) 2019/02/16(土) 20:10 ---- 隠居じーさんさんありがとうございます! SoulManさんの関数であっているはずなのですが、 今日より後でも×で返ってしまいます。 Vlookで引っ張った日付や、today関数で引っ張った日付は関数では使えない。。。とかそういう事はありませんでしょうか・・・? (aska) 2019/02/16(土) 20:10 ---- ↓として配列にしてみますぅ?? =IF(OR(MAX((B1:C1)*1)>$E$1,A1="終了済"),"〇","×") (SoulMan) 2019/02/16(土) 20:22 ---- F9でB1:C1の中身を見てみて下さい =IF(OR(MAX(({43506,43556})*1)>$E$1,A1="終了済"),"〇","×") (SoulMan) 2019/02/16(土) 20:27 ---- 私のはまちがってたみたいですね。。。^^; すみませんでした。 めげずに勉強致します( ..)φメモメモ m(__)m (隠居じーさん) 2019/02/16(土) 20:42 ---- いやいや、、私もおおぼけの連続ですから、、ふぁいっとぉ〜〜です。(^^; (SoulMan) 2019/02/16(土) 20:47 ---- >D1,D2が〇になればいいのですが・・・ どういう場合が ○ なんですかね? A列が「終了済」か またはB列・C列の日付のどちらか(または両方)が今日より後の場合ってこと? >=IF(OR(MAX((B1:C1)*1)>$E$1,A1="終了済"),"〇","×") ↑ 何のために「*1」してるんですかね? それと、その 〇 は丸印じゃないです。漢数字のゼロです。 以上 (笑) 2019/02/16(土) 20:54 ---- いづれにしても私の計算式は没ですが。。。^^ 一つだけ教えて下さい。 表示メッセージから推測するに。 B列(開始日)〜C列(終了日)で、今日の日付(E1)が、その期間内かどうかの表示(A列)を 調べておられるのではないのでしょうか。 (隠居じーさん) 2019/02/16(土) 21:02 ---- >=IF(OR(B1>$E$1,C1>$E$1),“○”,IF(A1=“終了済”),“○”,“×”)) >といれてみたのですが、うまく行きません。。 ↓ でうまくいかなかったってこと? =IF(OR(B1>$E$1,C1>$E$1),"○",IF(A1="終了済","○","×")) 具体的に、A列が何で、B・C列がどんな日付の場合に、どうなってしまったんですか? それと日付は開始日と終了日? だったら、終了日が今日より後かどうかだけみればいいってことですか? >今日より後でも×で返ってしまいます。 >Vlookで引っ張った日付 日付が文字列の可能性もあるんですかね? どこか空いた列に =COUNT(B1:C1) と入れて、下にコピーしてみてください。 B・C列に日付が入っている行は全部「2」になりますか? 以上 (笑) 2019/02/16(土) 22:22 ---- B列(開始日)〜C列(終了日)で、今日の日付(E1)が、その期間内かどうかの表示(A列)を 調べておられるのではないのでしょうか。 →すいません、B列とC列の間に関係性は全くありません。全く独立に入力される日付です。 どこか空いた列に =COUNT(B1:C1) と入れて、下にコピーしてみてください。 B・C列に日付が入っている行は全部「2」になりますか? →「0」になります… (aska) 2019/02/16(土) 22:48 ---- >皆様 別セル(F,G列)に、B、C列を=valueでコピーして、 =IF(OR(MAX(F1:G1)>$E$1,A1="終了済"),"〇","×") というSoulManさんの関数で、やりたかったことができました・・・! (笑)さんのコメント通り、日付で認識されていなかったようです。 皆様のコメントのお陰です、ありがとうございました! (aska) 2019/02/16(土) 23:00 ---- 作業列を使わなくても ↓ でできませんか? D1 =IF(OR(A1="終了済",B1*1>$E$1,C1*1>$E$1),"○","×") というか、VLOOKUPが参照している表の日付が文字列になってるということですよね? そっちを日付データにする方がいいと思いますけど・・・ 参考まで (笑) 2019/02/16(土) 23:11 ---- 作業列を使わなくても*1を入れることでできました! ありがとうございます! 元データを日付にする方法も試してみます! ありがとうございました! (aska) 2019/02/16(土) 23:57 ---- 何度もすみません。 B列、C列のVLOOKUPの式に「1」を掛けてもいいです。 =VLOOKUP(……)*1 ~~ 元データを日付(シリアル値)にするのがベストですけど。 以上です (笑) 2019/02/17(日) 00:42 ---- ありがとうございます!vlook*1でできました! 元データは別のシステムから読み込んでいるので、Excel側で 変換する必要がありまして…(^^ゞ (aska) 2019/02/17(日) 08:24