Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(macOS 12.0 : Microsoft 365)
LEFT関数出した値がXLOOKUP関数で反映されない問題を解決したい。
投稿日時: 24/01/24 18:38:03
投稿者: per


sheet 1

    B      C        D          E
1  500    700    500-700

@B1=LEFT(D1,FIND("-",D1)-1)
AE1=XLOOKUP(B1,sheet2!A1:A3,sheet2!C1:C3)



sheet 2

    A      B       C
1  500    700    りんご
2  600    800    ごりら
3  700    800    らっぱ


 
上記のようにsheet1の@B1にLEFT関数で出した値を元に、
E1へ sheet2 の表からA列を参照しC列を引き出したく
E1へAの関数を入力したところエラーになります。
 
関数が間違っているのかな?と思いB1に「500」と直入力したところ、E1に「りんご」と反映されました。
 
LEFT関数で引き出した値で、XLOOKUP関数を使用し値を反映する事はできないのでしょうか?
 
※sheet1 A列は日付です。
※sheet1 C列はD列を参照したRIGHT関数の値です。

回答
投稿日時: 24/01/24 18:50:13
投稿者: んなっと

見た目は同じ500でも、LEFT関数で取り出したのは文字列。
Sheet2のA列は数値。データ型の違いだと思います。
 
   B  C    D    E
1 500 700 500-700 りんご
 
B1
=1*LEFT(D1,FIND("-",D1)-1)
とするか、
E1
=XLOOKUP(1*B1,Sheet2!A1:A3,Sheet2!C1:C3)
とするか。どちらでもお好みで。

投稿日時: 24/01/24 19:15:01
投稿者: per

んなっと さんの引用:
見た目は同じ500でも、LEFT関数で取り出したのは文字列。
Sheet2のA列は数値。データ型の違いだと思います。
 
   B  C    D    E
1 500 700 500-700 りんご
 
B1
=1*LEFT(D1,FIND("-",D1)-1)
とするか、
E1
=XLOOKUP(1*B1,Sheet2!A1:A3,Sheet2!C1:C3)
とするか。どちらでもお好みで。

 
んなっと様
 
なんと!信じられないことが起きました!
E1に値が反映されました。(びっくり)文字列だったのですね。1を掛けると数字になる。ルールがイマイチ分かりませんが... 問題が解決されました!次に進みます!
ありがとうございましたm(._.)m
 
=1*LEFT(D1,FIND("-",D1)-1)
↑こちらに致しました。