重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

d5は13年5ケ月の計算結果が表示されています。

=IF(LEFT(D5,FIND("年",D5)-1)>=25,"100%",IF(LEFT(D5,FIND("年",D5)-1)<25,"90%",IF(LEFT(D5,FIND("年",D5)-1)<20,"80%",IF(LEFT(D5,FIND("年",D5)-1)<15,"70%",IF(LEFT(D5,FIND("年",D5)-1)<10,"60%")))))

計算結果は70%になるはずが、なりませんでした。
間違えをご指摘お願いします。

A 回答 (2件)

そもそもなんですが、LEFT関数で抜き出したデータは文字列なので全て数値より大きくなります。


ですから

>=IF(LEFT(D5,FIND("年",D5)-1)>=25,"100%"

この時点でTRUEになるので100%になります。
*1でLEFT関数の返り値を数値化しても

=IF(LEFT(D5,FIND("年",D5)-1)*1>=25,"100%",IF(LEFT(D5,FIND("年",D5)-1)*1<25,"90%",IF(LEFT(D5,FIND("年",D5)-1)*1<20,"80%",IF(LEFT(D5,FIND("年",D5)-1)*1<15,"70%",IF(LEFT(D5,FIND("年",D5)-1)*1<10,"60%")))))

>IF(LEFT(D5,FIND("年",D5)-1)*1<25,"90%"

この時点で条件を満たすので90%になります。
前から判定していくと書きましたよね?
こういうのは小さい数から配置していくんですよ。
    • good
    • 0
この回答へのお礼

ありがとうございました。
出来ました!

お礼日時:2020/09/24 13:54

D5は計算結果?数値?


文字列と仮定して、IFの二個目、25小なりがTRUEになるので、90%になっちゃうのでは?
小さい方から順に書けば大丈夫かと。
    • good
    • 0

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