- ベストアンサー
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なら"そのまま" にしたい。どんな式を書けばいいでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 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),"")
その他の回答 (3)
> SPなら"そのまま" SPってスペースという意味でしょうか?
お礼
はいそうです。 おかげで解決しました。どうもありがとうございました。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
例示どおり、数字と単位の間に1文字の空白があるとします。やっぱ りないってのは困りますよ。 =CHOOSE(MATCH(RIGHT(A1,2),{"KB";"MB";" B";"SP";""},0),LEFT(A1,LEN(A1)-2)*1,LEFT(A1,LEN(A1)-2)*1000,1,"そのまま","")
お礼
おかげで解決しました。どうもありがとうございました。
- merlionXX
- ベストアンサー率48% (1930/4007)
単位と数値の間には必ずスペースがあるんですね? なら、こんな感じかな。 =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,"対象外")))))
お礼
おかげで解決しました。どうもありがとうございました。