アプリ版:「スタンプのみでお礼する」機能のリリースについて

数字(10桁)のデータがあります。(1234567890、2345678912のような)
例えばB列にそのようなデータがあり、IF関数にてそのうちの1から始まる10桁のデータは"AA1"。2から始まる10桁のデータだったら"BB2"という結果を出したい場合なのですが、どのような論理式を立てればいいでしょうか?10桁の数字は、1から始まれば全て"AA1"2から始まればBB2と結果がでるようにしたいのです。
どうかお分かりになる方ご返答お待ちしております。よろしくお願いいたします。

A 回答 (6件)

セルA1に値入っているとして、IF関数を使うなら、


=IF(LEFT(A1,1)="1","AA1",IF(LEFT(A1,1)="2","BB2","?"))
――とか。
CHOOSE関数を使う手もあります。
詳しくはExcelのヘルプをご覧下さい。
    • good
    • 0
この回答へのお礼

そうです!この数式を途中まで考えていたんです。
参考になりました。ありがとうございました。

お礼日時:2007/01/26 18:22

質問文のように、1と2だけなら、IF関数でもよいのですが


それ以上になってくると#1さんがおっしゃるとおりややこしい上、
最大7つまでしかネストに組み込めません。

それよりは、表示リストをつくり、VLOOKUP関数やINDEX関数のほうが
簡単だと思います。

この回答への補足

最大7つまでしかネストに組み込めないんですね。
勉強になりました。
ありがとうございました。

補足日時:2007/01/26 18:26
    • good
    • 0
この回答へのお礼

すみません、補足に書き込んでしまいました<(_ _)>

最大7つまでしかネストに組み込めないんですね。
勉強になりました。
ありがとうございました。

お礼日時:2007/01/26 18:28

 頭の数字のよって、「AA1」から「II9」までに表示し分けるということでよろしいでしょうか。


 それでしたら、セルに次のように入力すれば変換できます。

  「=REPT(CHAR(CODE(A1)+16),2)&LEFT(A1,1)」

 この方法は、「1」~「9」をコードで表すと49~57になり、「A」~「I」が65~73になることを利用したものなので、if関数を使わずに済み短く表せる利点があります。
    • good
    • 0
この回答へのお礼

見た事もない関数が・・・・(苦笑)
勉強になりました。ありがとうございました。

お礼日時:2007/01/26 18:26

数字を文字列に変換して左側1バイト(1文字)を見る、というのが正攻法だとは思いますが、別解として


1000000000(や2000000000等)で割算してみるってのはどうでしょう?
商が1以上2未満であればご希望の事が出来ると思います。
3以降9まであるならIFのネストがとっても深くなるのは他のみなさんの解と同様なので、やっぱりAno1さんのおっしゃるとおり関数自作の方がいいかもしれません。
    • good
    • 0
この回答へのお礼

こんなやり方もあるんですね。。
参考になりました。ありがとうございました。

お礼日時:2007/01/26 18:24

B1にデータがある場合、



=IF(LEFT(TEXT(B1,"@"),1) = "1", "AA1", "BB2")

設定したい文字列が多数ある場合、VLOOKUPなどを利用します。
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にさせて頂きます。

お礼日時:2007/01/26 18:21

B列に入る数値がすべて10桁である(10桁であることを検証する必要はない)、かつ1ケタ目は1か2で必ず始まる。

という条件が付けられるのであれば、下記で対応できます。

=IF(LEFT(Bn,1)="1","AA1","BB2")

もし、1ケタ目がいろいろ変わるのであれば、"BB2"のところをネストすれば出来ますが、ややこしくなるので関数作ったほうが早いかも知れません。
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございました。
参考にさせて頂きます。

お礼日時:2007/01/26 18:15

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