プロが教えるわが家の防犯対策術!

A       
1 264832
2 45483S
3 38547D
4 875412
5 58794G

7 600
8 500

それぞれのセルにおいて末尾がアルファベットなら600、数値なら500を取ってきたいのですがうまくいきません。
=IF(ISNUMBER(RIGHT(A1,1),A7,A8,""))

ISNUMBERとRIGHTは繋げれないのではないかと思うのですが、どなたかご教授お願いします。

質問者からの補足コメント

  • うーん・・・

    =IF(ISNUMBER(RIGHT(A2,1)),A7,A8)

    これで動きました。

    しかし、A12548K、A125487、アルファベットでも数値でも両方A8を持ってきます。
    訂正方よろしくお願いします。

    No.3の回答に寄せられた補足コメントです。 補足日時:2018/10/31 09:08

A 回答 (4件)

よこからですが・・・



>すみません、動かないのですが?
No3様の式はきちんと動作しますよ。

どうしても。RIGHT(A1,1)にこだわりたいのであるなら、その結果が文字列になっていることに留意すべきです。
(Right()は文字列演算の関数で、A1セルの内容を文字列に変換してから演算し、文字列を返す関数)

すでに、No2でも指摘されているように、
 ISNUMBER(文字列)
の結果は常にFalseです。
文字列の内容が数字であろうとなかろうと、文字列として評価されますので、常にFalseとなってTrueになることはありません。

ですので、文字列の内容が数値がどうかを判定したければ、(一例として)「数値に変換してみてエラーになるかどうか」等で判断することが可能と思われます。
例えば
 =IF(ISERR(VALUE(RIGHT(A1,1))),"文字だよ","数字だよ")
みたいな感じでしょうか?

※ 上式は、A1セルの値が空白の際は「文字」として判断しますので、空白の場合はこれとは別の処理を行いたいというような場合は、その処理を付け加える必要があります。
    • good
    • 0
この回答へのお礼

おおー、素晴らしいー出来ました。
大変、大変、ありがとうございました。

お礼日時:2018/10/31 09:39

ゴメン。


もう一つ訂正あったわ。
 =IF(ISNUMBER(A1),A7,A8,"")
 ↓
 =IF(ISNUMBER(A1),A7,A8)

そして気を効かせて
 =IF(A1<>"",IF(ISNUMBER(A1),A7,A8),"")
この回答への補足あり
    • good
    • 0
この回答へのお礼

あたまにアルファベットが入っているので

=IF(A1<>"",IF(ISNUMBER(RIGHT(A1,1)),A7,A8),"")

ですよね?
すみません、動かないのですが?
これであってると思うのですが。

お礼日時:2018/10/31 08:49

いや、その数式ではエラーになるぜ。


どうみたってさ。

・・・冗談はさておき本題・・・
誤 =IF(ISNUMBER(RIGHT(A1,1),A7,A8,""))
正 =IF(ISNUMBER(RIGHT(A1,1)),A7,A8,"")

…として回答してみます。
どう考えても、RIGHT関数でA1セルを強制的に文字列にしているようにしか見えない。
RIGHT関数はいらないと思うんだ。
 =IF(ISNUMBER(A1),A7,A8,"")
でOK。
    • good
    • 0
この回答へのお礼

さっそくありがとうございます。
そうですね、正確には頭にもAとかBとかアルファベットがあるんです。
ですからRIGHTをつかってるんですが、正としても動かないのですがよろしくお願いします。

お礼日時:2018/10/31 08:43

その関数、かっこの位置がおかしい

    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A