- ベストアンサー
IF関数 論理が複数の場合について
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>……フォーマット上他のセルを使用できない状態です。 では、列を追加しない数式も下のとおり回答します。 ただ、「フォーマットを変更できないので…」とおっしゃる質問者の方は確かに多いのですが、実際は、シートの追加なら可能というケースが多いんじゃないでしょうか。Excel は他シートのセルから参照することもできるので、作業列を他シートに設けることには何ら問題ありません。 質問文の表だと、納品日が記録されないことになりそうなので、それで大丈夫だろうかと考え、こちらで追加して回答したまでです。もしも既に他シートとかどこかに納品日が記録してあるのであれば、「=if(sheet2!c2,"済","")」という具合に、そのデータを利用できますね。下で回答する数式にしても、同様です。 また、たとえ同じシート内であっても、印刷範囲あるいは改ページの外の位置であれば、作業列を設けても差し支えないというケースが多いのではないかと推察します。 >納期回答が来ていなければ希望納期の日付。 そういう意味だったのですね。であれば、次式になります。 D2 =if(c2="",if(a2*(max(a2:b2)<today()),"遅延",""),"完納")
その他の回答 (4)
- KURUMITO
- ベストアンサー率42% (1835/4283)
D2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(AND(A2<TODAY(),C2="済"),"完納","遅延"))
補足
回答ありがとうございます。 教えていただいた式ではB列の納期回答の日付が入っていたら、 その日付を見て、の部分が入っていないように思うのですが… 納期回答があれば納期回答の日付が優先なのです。 納期回答が来ていなければ希望納期の日付。 その日付を過ぎて品物が納品になっているか、遅れていないか? このチェックをしたいのです。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.1・2 です。再三、申し訳ありません。次式のほうがシンプルでした。No.2 と同じ結果になります。 D2 =if(c2,"済","") E2 =if(c2,"完納",if(a2*b2*(b2<today()),"遅延",""))
補足
回答ありがとうございます。 教えていただいた式だとE列を追加ですね。 後出しになってしまいますが、 フォーマット上他のセルを使用できない状態です。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
お礼
希望通りの結果が表示されました。 ありがとうございました!