• ベストアンサー

Excel IF関数 順位

エクセルで B1に今回の順位 C1に前回の順位 を入力し、A1に↑,↓,←,NEW と表示されるようにしたいのですが、上手くいきません(>_<) このように入力しました =IF(C1=不参加,"NEW",IF(C1=圏外,"↑",IF(B1=C1,"←",IF(B1<C1,"↑",IF(B1>C1,"↓",)))))

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

No.3です。何度もすみません。B1にVLOOKUPを使いましたが、MATCHのほうがより簡潔に書けるので、次の式に差し替えてください。 B1セル =choose(match(a1,{"C1=不参加","圏外","B1=C1","B1<C1","B1>C1","その他"},),"NEW","↑","←","↑","↓",)

その他の回答 (3)

回答No.3

やや式が長くなっちゃいますが、こんなのも書けますよ。メリットは、分かりやすさ。 A1セル C1=不参加 ※「C1=不参加」、「圏外」、「B1=C1」、「B1<C1」、「B1>C1」、「その他」から選んで入力 B1セル =choose(vlookup(a1,{"C1=不参加",1;"圏外",2;"B1=C1",3;"B1<C1",4;"B1>C1",5;"その他",6},2,),"NEW","↑","←","↑","↓",) ※「" "」で挟まれている文字列は、大文字/小文字、全角/半角を区別してください。

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.2

辛口ですが、失礼します。 まず、圏外や不参加は順位ではありません。 やりたいことをそのまま説明できればできると思います。 予想でわかりますが、 どういうときに、どういう結果になる これこそがif文なんで、やりたいことをそういう観点で見たり説明するように心がけると簡単です。 予想にて失礼しますが、今回の例なら 各順位に1~圏内順位最大値、圏外、不参加しか入れないことを前提に 前回が不参加で、今回が不参加以外 →NEW 上記ではなくて 前回より今回が大きいか、前回が圏外で今回が圏内順位最大値以下の自然数 →↑ 上記ではなくて 前回より今回が小さいか、前回が圏外順位最大値以下の自然数で今回が圏外 →↓ 前回と今回が等しい →← ※前回も今回も圏外の場合も←と判定される あとは、質問の式で比較対照の文字列は""で囲んでください。

  • bajutsu
  • ベストアンサー率20% (139/693)
回答No.1

「不参加」と「圏外」はダブルクォーテーションで括りましょう。 #NAME は、関数名が見つからない時に出るエラーです。 不参加と圏外が、ダブルクォーテーションで括ってないので 関数か何かだと思って、「そんなのねーよ!!」と言っているのです。 それと、これはエラーにはなりませんが、最後のIF で偽の時は 空の文字列「""」にした方がよくないですか?

関連するQ&A