【初月無料キャンペーン中】gooドクター

エクセルで

B1に今回の順位 C1に前回の順位

を入力し、A1に↑,↓,←,NEW

と表示されるようにしたいのですが、上手くいきません(>_<)

このように入力しました
=IF(C1=不参加,"NEW",IF(C1=圏外,"↑",IF(B1=C1,"←",IF(B1<C1,"↑",IF(B1>C1,"↓",)))))

「Excel IF関数 順位」の質問画像
gooドクター

A 回答 (4件)

No.3です。

何度もすみません。B1にVLOOKUPを使いましたが、MATCHのほうがより簡潔に書けるので、次の式に差し替えてください。

B1セル
=choose(match(a1,{"C1=不参加","圏外","B1=C1","B1<C1","B1>C1","その他"},),"NEW","↑","←","↑","↓",)
    • good
    • 0

やや式が長くなっちゃいますが、こんなのも書けますよ。

メリットは、分かりやすさ。

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","↑","←","↑","↓",)

※「" "」で挟まれている文字列は、大文字/小文字、全角/半角を区別してください。
    • good
    • 0

辛口ですが、失礼します。



まず、圏外や不参加は順位ではありません。

やりたいことをそのまま説明できればできると思います。

予想でわかりますが、

どういうときに、どういう結果になる

これこそがif文なんで、やりたいことをそういう観点で見たり説明するように心がけると簡単です。

予想にて失礼しますが、今回の例なら
各順位に1~圏内順位最大値、圏外、不参加しか入れないことを前提に

前回が不参加で、今回が不参加以外
→NEW

上記ではなくて
前回より今回が大きいか、前回が圏外で今回が圏内順位最大値以下の自然数
→↑

上記ではなくて
前回より今回が小さいか、前回が圏外順位最大値以下の自然数で今回が圏外
→↓


前回と今回が等しい
→←

※前回も今回も圏外の場合も←と判定される



あとは、質問の式で比較対照の文字列は""で囲んでください。
    • good
    • 0

「不参加」と「圏外」はダブルクォーテーションで括りましょう。


#NAME は、関数名が見つからない時に出るエラーです。
不参加と圏外が、ダブルクォーテーションで括ってないので
関数か何かだと思って、「そんなのねーよ!!」と言っているのです。

それと、これはエラーにはなりませんが、最後のIF で偽の時は
空の文字列「""」にした方がよくないですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング