• ベストアンサー

excel 式  単位を含むセルの数値化

(質問) A列に下記のような数列 3.40 KB 3.23 MB 3.22 KB 3.21 MB 3.21 MB 3.21 MB 3.17 KB 3.17 KB 3.17 B B列に KBなら"数値そのまま" MBなら"1000倍した数値" Bなら一律"1" SPなら"そのまま" にしたい。どんな式を書けばいいでしょうか。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 A列は、数値+半角スペース+単位の文字列、B列に数値のみ抽出としています。 =IF($A1<>"",CHOOSE(LOOKUP(TRIM(MID($A1,FIND(" ",$A1),99)),{"B","KB","MB"},{1,2,3}),1,MID($A1,1,FIND(" ",$A1)-1)*1,MID($A1,1,FIND(" ",$A1)-1)*1000),"")

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございました。

その他の回答 (3)

noname#79209
noname#79209
回答No.4

> SPなら"そのまま" SPってスペースという意味でしょうか?

taktta
質問者

お礼

はいそうです。 おかげで解決しました。どうもありがとうございました。

回答No.3

例示どおり、数字と単位の間に1文字の空白があるとします。やっぱ りないってのは困りますよ。 =CHOOSE(MATCH(RIGHT(A1,2),{"KB";"MB";" B";"SP";""},0),LEFT(A1,LEN(A1)-2)*1,LEFT(A1,LEN(A1)-2)*1000,1,"そのまま","")

taktta
質問者

お礼

おかげで解決しました。どうもありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

単位と数値の間には必ずスペースがあるんですね? なら、こんな感じかな。 =IF(A1="","",IF(MID(A1,FIND(" ",A1)+1,2)="KB",LEFT(A1,FIND(" ",A1))*1,IF(MID(A1,FIND(" ",A1)+1,2)="MB",LEFT(A1,FIND(" ",A1))*1000,IF(MID(A1,FIND(" ",A1)+1,2)="B",1,IF(MID(A1,FIND(" ",A1)+1,2)="SP",A1,"対象外")))))

関連するQ&A