- ベストアンサー
Excelの式を教えてください
下記の場合に、A2に入れるべき式を教えてください。 A1に4桁の数字を入力します。 その入力された数字の2番目(百の位)の数字が、 ●9のとき、A2に「OK」と表示させる ●9以外のとき、A2に「EX」と表示させる と言うものです。 =IF(MID(A1,2,1)=9,OK,EX) としたのですが、ダメでした。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
=IF(MID(A1,2,1)=9,OK,EX) では 9 は数値ですので一致することはありません。 MID関数は文字列に大して実行し、文字列を値として返してきます。 Excel は数値を文字列として関数に渡してくれますが、文字列と数値の比較は自動では処理できません。 では、対処方法。 =IF(MID(A1,2,1)="9",OK,EX) とダブルクォーテーションで 9 を囲って文字列として比較する。 =IF(MID(A1,2,1)*1=9,OK,EX) と数値を示す文字列に1を掛けて数値に変換してから比較する。 などの手法が考えられます。 はじめから数値として計算で百の桁の数値を求める方法もありますが、面倒ですし参考としておきましょう。
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 =IF(MID(A1,2,1)="9","OK","EX") という具合に「9」をダブルクォーテーションで囲んでみてください。 文字列扱いにすれば大丈夫だと思います。m(_ _)m
- keithin
- ベストアンサー率66% (5278/7941)
絶対に4桁の数字しか入らないヤクソクが出来るなら =IF(MID(A1,2,1)="9","OK","EX") のようになります。 現実には ○A1にはまだ数字が入ってない状態もあり得る ○4桁を記入も守れない場合もあり得る ○小数点以下の数字とかマイナスの数字とか「0923」みたいな数字を文字列で記入したくなるかもしれません といった事まで考えて,数式をたてる場合もあります。 例: =IF(ISNUMBER(A1),IF(MOD(INT(A1/100),10)=9,"OK","EX"),"")