• 締切済み

IF関数の複数セルのTrue判定

株価を銘柄ごとに1行づつ表示し、K列でジャッジをしようとしています 各行に対して、IF文で、N > N > L の場合、Kセルに Trueの意味でT、それ以外はFを表示させたいのです が、5行目、6行目はTrueではないはずなのに、IF文は"T"を返します N5>M5 & M5>L5 を条件式に入れても動作しないようです K列に正しく"F"が返るようにするには、IF文にはどのように N > N > Lをジャッジさせたらよいでしょうか そもそもIF文は、この場合は使えないのでしょうか 数値の差を計算させてジャッジさせればやりたい表示は実現できるのですが、後学のため、IF文の条件式(最初の項)の書き方、または複数セルをジャッジする関数について、回答をお願いします Office 2021

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • kkkkkm
  • ベストアンサー率65% (1633/2476)
回答No.5

回答No.1、回答No.4の追加です。 =IF(A1,"T","F") にしてA1に何か数値をい入れてみて結果を見ると、0がFで0以外はTになると思います。ですので条件式になんらかの数値が返る式であれば基本的になんでもありというのが分かると思います。

ketae
質問者

お礼

たぶんなんでもありかもですね Win+Fでフィードバックハブして、MS直してくれるかなあ

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1633/2476)
回答No.4

> IF式はこれからもうよく使うので、IIF式が言う「条件式」とは何が書けるのかの一覧みたいなのを知りたいのです 論理式ならなんでもありだと思いますよ。一覧とかだときりが無いと思います。 =IF(NOT(A1=B1),"T","F") などという変なものもいけますし =IFERROR(IF(FIND("A",A1),"T","F"),"") のように強引なのもいけます。 一覧があるかどうか エクセル if文 で検索してみるくらいでしょうか。

ketae
質問者

お礼

論理式がよくわからないのですが、 IFの関数モーダルというかウィザード画面の条件式に N5>M5>L5 と書いた時点で、(Falseが返るはずの数値がセルに入っていても)TrueとでるのがそもそもUI的にバグってるような気もしてきました

全文を見る
すると、全ての回答が全文表示されます。
  • asciiz
  • ベストアンサー率70% (6656/9434)
回答No.3

>各行に対して、IF文で、N > N > L の場合、Kセルに Trueの意味でT、それ以外はFを表示させたいのです >が、5行目、6行目はTrueではないはずなのに、IF文は"T"を返します 条件式の書き方が間違っています。 > =IF(N5>M5>L5、 "T", "F") 「N5>M5>L5」という式は、「N5よりM5が小さく、さらにL5が小さい」という意味にはなりません。 「N5>M5>L5」という式は、「(N5>M5)>L5」という順番で解釈されます。 まずカッコの中を見ると、N5よりM5が小さければ、「TRUE」です。そうでなければ「FALSE」です。 そして式の続き、「(TRUEまたはFALSE)>L5」を判断します。でも、「TRUE>L5」も「FALSE>L5」もTRUE になってしまうので、この式全体では TRUE にしかならないのです。 >N5>M5 & M5>L5 >を条件式に入れても動作しないようです これも、& の使い方が間違っています。 EXCELの式において、& は文字列の連結を意味します。 TRUE & TRUE は、「TRUE」ではなく"TRUETRUE"という文字列です。 TRUE & FALSE は、「FALSE」ではなく"TRUEFALSE"という文字列です。 ついでに FALSE & TRUE は、「FALSE」ではなく"FALSETRUE"という文字列です。 つまり論理積(AND)の判定になっていないのです。 &結合を使った瞬間、すべて文字列に変換されてしまうのです。 EXCELの論理積(AND)は、「AND関数」によって行います。 =AND(N5>M5, M5>L5) と書いたならば、「N5よりM5が小さい、かつ、M5よりL5が小さい」という式になります。 これをIF関数に組み込んで、 =IF(AND(N5>M5, M5>L5), "T", "F") このように書けば、希望の動作をしてくれるでしょう。

ketae
質問者

お礼

ありがとうございます ANDがよさげですね IFの関数モーダルというかウィザード画面の条件式に N5>M5>L5 と書いた時点で、(Falseが返るはずの数値がセルに入っていても)TrueとでるのがそもそもUI的にバグってるような気もしてきました

全文を見る
すると、全ての回答が全文表示されます。
  • are_2023
  • ベストアンサー率30% (357/1158)
回答No.2

これでどうですか =IF(N5>M5,IF(M5>L5,"T","F"),"F")

ketae
質問者

お礼

ありがとうございます 書いたようにもうやりたいジャッジは実現できているのですが、IF関数の最初の項に書ける条件式の条件?を記載したサイトとかないかなと思いまして投稿いたしました IF式はこれからもうよく使うので、IIF式が言う「条件式」とは何が書けるのかの一覧みたいなのを知りたいのです

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1633/2476)
回答No.1

=IF(AND(N3>M3,M3>L3),"T","F") とかでしょうか。

ketae
質問者

お礼

ありがとうございます 書いたようにもうやりたいジャッジは実現できているのですが、IF関数の最初の項に書ける条件式の条件?を記載したサイトとかないかなと思いまして投稿いたしました IF式はこれからもうよく使うので、IIF式が言う「条件式」とは何が書けるのかの一覧みたいなのを知りたいのです

ketae
質問者

補足

投稿間違えました ANDを条件として使えるのですね ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでこんなことが!セルには何が入っている?

    エクセル2000で式を作ったところ、どうしてもわからない現象が起きて困っています。 L列に他のシートから列をコポーしました。 M列に、=IF(L1>0,TRUE,FALSE) を下までドラック N列に、=IF(L1="",TRUE,FALSE) を下までドラック すると、 MもNも「TRUE」なのです! L列に入っているのは「""」で、かつ0より大きいということになります。いったい何が入っているのでしょうか? ためしに、L列のセルを選択してデリートすると、そこだけはMは「FALSE」になります。 こんなことってあるんでしょうか?

  • エクセルのif文関数の複数条件時の記述について

    こんにちは。 エクセルのif文関数についての質問です。 添付画像にあるように、データがあるとします。 このエクセルは、ABCの行それぞれのデータに対応して、 A行、B行、C行それぞれのデータのうち、ひとつでも1000を超えるデータがあれば 判定のセルに1を表示するというものです。 この場合、今まではH4のセルに =IF((OR(C4>1000,D4>1000,E4>1000,F4>1000)),1,0) と入力していました。 今までは例のようにデータの列が4つほどなので問題なかったのですが、 データの列が60列となり、上記のようなIF文では処理できなくなってしまいました。 (条件が30個を超えるとエクセルからエラーがでます) この場合上記のIF文をもっと簡潔に、 列が増えても問題ないような関数に置き換えるには どのような関数を入力すればいいでしょうか。 皆様よろしくお願いします。

  • IF関数について

    IF関数について A列のセルに住所が入力されていて、「中野区」という文字列が含まれているときに「○」そうでない場合は「-」をB列セルに表示させる方法で B列セルに、 =IF(COUNTIF(A1,"*中野区*"),"○","-") を入力すれば良いことがわかりました。 この条件に加えて、A列のセルが空白の場合上の行を参照するという条件を加えたいと思います。 例A3のセルが空白の場合A2を参照しB3に表示させる。 因みに、A2も空白の場合A1を参照する。 って感じにしたいです。 宜しく御願いします。

  • EXCELのIF関数の入れ子について

    すみませんよろしくお願いします。 EXCELでセル(A1)~(L1)までに不特定の文字列が入力されており、(M1)に「もし(L1)が入力されていたら(L1)の値を表示、もし(L1)がブランクなら(K1)の値を表示、もし(K1)がブランクなら(J1)の値を表示、もし(J1)がブランクなら(I1)の値を表示・・・・」といった具合で関数を作成したいのです。また、(A1)~(L1)のセルで穴あき状態で入力されていた場合は最も(L1)寄りのセルを表示させたいです。 EXCEL2003のIF関数だと、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="","",E2),F2),G2),H2),I2),J2),K2),L2) で最後の(A1)までの入れ子を作ることができせん。 EXCEL2007を使用すると、 =IF(L2="",IF(K2="",IF(J2="",IF(I2="",IF(H2="",IF(G2="",IF(F2="",IF(E2="",IF(D2="",IF(C2="",IF(B2="",IF(A2="","",A2),B2),C2),D2),E2),F2),G2),H2),I2),J2),K2),L2) と作成できます。 EXCEL2003で作成するいい方法はありますでしょうか? ご指南の程よろしくお願いします。

  • Excel IF関数を短くする式を教えて下さい。

    ベストアンサーにさせて頂いた方のやり方で別な問題点が出てきたので再び同じ質問です。 画像のB2セルに入る数式を短くまとめたいのです。。 今のところは下記のような式で上手くいっていますが、長すぎて編集する際困ってます。 =IF(D2="",0,IF(D2<4.5,D2,4.5))+IF(F2="",0,IF(F2<4.5,F2,4.5))… +IF(D3="",0,IF(D3<3.5,D3,3.5))+IF(F3="",0,IF(F3<3.5,F3,3.5))… +IF(D4="",0,IF(D4<4.5,D4,4.5))+IF(F4="",0,IF(F4<4.5,F4,4.5))… +IF(D5="",0,IF(D5<3.5,D5,3.5))+IF(F5="",0,IF(F5<3.5,F5,3.5))… +IF(D6="",0,IF(D6<4.5,D6,4.5))+IF(F6="",0,IF(F6<4.5,F6,4.5))… +IF(D7="",0,IF(D7<3.5,D7,3.5))+IF(F7="",0,IF(F7<3.5,F7,3.5))… D2~7にはC2~7を使った式が入っています。 つまり、D,F,H,J,L,N,P,R,T,V,X列をA列の数値と比較したときに 小さい方を合計として出したいのです。 どなたか分かる方いらっしゃいましたらよろしくお願いいたします。

  • 複数のセルの引数を絶対参照にする方法

    エクセル2010を使っています。 複数のセルの最初の引数を一度に絶対参照にしたいです。 やりたいことを、添付した図で具体的に説明します。 この図には、frame1,frame2,frame3,の3つの基本の表(A列からD列の部分)があります。 また、frameX(I列からL列の部分)もあります。 今、作業は、E列からH列で行なっています。 まず、 F3には、=IF(J3=0,0,B3) G3には、=IF(K3=0,0,C3) ・・・ H7には、=IF(L7=0,0,D7) という関数を入れました。 この後、E1からH7を、コピー貼り付けして、 frame3-2までを完成したいです。 ですが、このままですと、frame2-2も、frame3-2も、それぞれの5行3列の値は全て0になってしまいます。 そこで、 F3には、=IF($J$3=0,0,B3) G3には、=IF($K$3=0,0,C3) ・・・ H7には、=IF($L$7=0,0,D7) と、5行3列に入れた(15個のセルの)、最初の引数を絶対参照にしたいです。 (実際の表は37行45列で、frameの数が200あります。) 複数のセルに入っている、最初の引数を一度に絶対参照にする方法はあるのでしょうか? よろしくお願いします。

  • EXCEL IF関数

    M列に日付が入力されています。 K列には内or外と入力されています。 L列には K列が"内"であればM列の3日前 K列が"外"であればM列の7日前 の日付を返す。という式を入力したいのですが、 例 セルM1 "9/10"  セルK1 "内"  セルL1 "9/7" 宜しくお願いします。

  • 【ExcelVBA】IF条件を満たしているのに、IF条件のところで止まってしまう

    Sub test1() 変数1 = IsEmpty(Range("C1")) If Range("A1") > 0 And Range("B1") = 0 And 変数1 = True Then   test2 End If End Sub 止まったときのデバッグでの表示は Range("A1")は「100」(セルの中身) Range("B1")は「0」(セルの中身) 変数1はRange("C1")がエラー表示なので「True」 すべての条件を満たしているのですが、 IF条件のところで止まってしまいます。 (IF条件のところの1行が黄色くハイライトになっている状態) 止まったデバッグの後に、F5を押して実行させると、 IF条件の続きから実行されて、test2が実行されて処理が終了します。 何で、IF文のところで一度止まってしまうのかわかりません。

  • IF関数で * を使いたい

    A列の2行目から200行目くらいまで文字列が入っています。 A列の文に「駅」の字が含まれている場合はB列に「○」を入れたいです。 B2セルに =IF(A2="*駅*","○","") でフィルしても旨くいきません。 こういう場合ワイルドカードはどう使えばいいのでしょうか。 あるいは他の方法を使った方が良いのでしょうか。

  • IF関数で困ってます。

    すみません。 IF関数でお教えください。 IF関数を使用したのですが、ある数式を論理式に入れ、 TRUEの時、(ある数式)=14 FALSEの時、(ある数式)=21 と表示され、実際そのセルはTRUEだったのですが、 セルに現れた数字は「35」でした。 なぜ、このような事が起こるのでしょうか? 素人ゆえ、ご迷惑をお掛けしております。 どなたかお教えください。 よろしくお願い致します。

専門家に質問してみよう