• ベストアンサー

セル数式を文字もしくは数値に変換する

A列に文字1/3~3/3、E列に数値1~3が入力されておりE列数値にマッチするようB1に左1文字の式=IF(A1="","0",LEFT(A1,1))の式を入力し、F1に=VLOOKUP(E1,B1:C3,2,0)の式を入力し文字Aを入力したいのですがエラーになります。 B列が1でなく式として認識されるのでなにか良い方法はないでしょうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 色々と突っ込みどころが多いやり方ですがそれは置いておくとして、A列に入力されている値が =IF(A1="","0",LEFT(A1,1)) という関数でちゃんと1~3が表示される様な値であれば、F1セルの関数を次の様にすればOKです。 =IF(ISERROR(1/(VLOOKUP($E1&"",$B$1:$C$3,2,FALSE)<>"")),"",VLOOKUP($E1&"",$B$1:$C$3,2,FALSE))  それからもし、C列の対応するセルに空欄のセルが存在している事が無い場合には、 =IFERROR(VLOOKUP($E1&"",$B$1:$C$3,2,FALSE),"") でもOKです。  ついでに申し上げますと、下記の様な関数にすればB列に関数を入力していなくとも同じ結果を得る事が出来ます。 =IF(OR($E1="",ISERROR(1/(VLOOKUP($E1&"*",$A:$C,3,FALSE)<>""))),"",VLOOKUP($E1&"*",$A:$C,3,FALSE))  

その他の回答 (4)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.5

> B列が1でなく式として認識されるので 違います。 LEFT関数を使ってせいで 結果が文字列になっているから 数値の検索でエラーが出るだけです。「"0"」も「""」でくくってしまっ ているので数値ではなく文字列です。 数値と文字列の区別を明確にしておかないと Excelでの計算には色々 支障がでます。 =IF(A1="","0",LEFT(A1,1)) これを =LEFT(0&A1,2)+0 のようにすれば VLOOKUPで結果が出るはずです。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>F1に=VLOOKUP(E1,B1:C3,2,0)の式を入力し文字Aを入力したいのですがエラーになります。 「文字Aを入力」は「文字Aを表示」です。 「数式の結果を指定のセル(数式を設定したセル)へ表示する」と言う考え方です。 「入力する」と言うと「キーボードで入力する」ようなイメージになってしまいます。 B1せるの値は文字列の1で、E1セルの値は数値の1になっていると思います。 従って、B1:B3の中に数値の1が見付からないためエラーになっているようです。 対策としてはB列の数式で結果を数値に変換するか、検索値(E1)の値を文字列に置き換えます。 前者の場合 B1=IF(A1="","0",LEFT(A1,1)*1) B1セルを下へB3までコピーする。 後者の場合 F1=VLOOKUP(TEXT(E1,"0"),B1:C3,2,0) または F1=VLOOKUP(E1&"0",B1:C3,2,0) Excelは身勝手で数字だけの文字列を四則演算すると勝手に数値化してくれますが、論理演算では数字だけの文字列も数値化せずに比較するようです。 エラーになったときはその辺もチェック対象にしてください。

  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.2

VLOOKUP 関数は参照するセルの内容が数式であっても、計算結果を参照しますので、問題は「数式だから」ということではありません。 1/6, 2/6, 3/6 は文字列なので、LEFT(A1,1)の結果は文字としての1です。 E列に入力した値が数値なのでマッチしません。 解決方法はいろいろあると思いますが、 一つは、B列の式を Valeu(Left(A1,1) として、文字の1を数字の1に変換する。(正しく動作することを確認済み) 一つは、E列に文字として入力する。(数字の前に'1, '2, '3 のように、半角の「'」をつける。)

kuma0220
質問者

お礼

ありがとうございます。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

簡単にはB1の式を =IF(A1="","0",LEFT(A1,1)*1) 以下コピー に修正すると正しく計算できるようになります。

kuma0220
質問者

お礼

ありがとうございます。