如何将多种格式的高度数据转换为英寸?

如何将多种格式的高度数据转换为英寸?

我有一个具有几千种高度、不同格式的列,我想将其转换为英寸。

来自实际数据的示例:

5英尺2英寸

6英尺3英寸

6英尺3英寸

6 英尺 3 英寸

5*8

5.3

5’10”

5 71/2

我在想有没有办法把英尺放在一列,把英寸放在第二列,这样就能计算英寸了。用 LEFT 计算英尺似乎很容易,但我不确定如何可靠地将英寸放在另一列。

做到这一点的最好方法是什么?

答案1

这将是一个多步骤的解决方案,我会通过将其分解成几个部分来解决它。
我将使用您的分号分隔列表(来自评论),加上一个附加值:5ft 7 1/2"。

  1. 使用 SUBSTITUTE 尽可能标准化列表:

    Col B: Replace "feet" with "ft"   =SUBSTITUTE(A2,"feet","ft")
    Col C: Replace "'" with "ft"      =SUBSTITUTE(B2,"'","ft")
    Col D: Replace "ft" and " ft" with " ft"
                                      =SUBSTITUTE(SUBSTITUTE(C2,"ft"," ft"),"  ft"," ft")
    Col E: Remove "inches"            =SUBSTITUTE(D2,"inches","")
    Col F: Remove "in"                =SUBSTITUTE(E2,"in","")
    Col G: Remove "                   =SUBSTITUTE(F2,CHAR(34),"")
    (CHAR(34) is the double quotes symbol, ")
    
    This can also be done with a long nested formula. I prefer simple.
    
  2. 使用 SEARCH 查找“ft”的位置;如果不存在,则写入“0”

    Col H: =IFERROR(SEARCH(" ft",G2,1),0)
    
  3. 计算英尺数

    Col I: =IFERROR(VALUE(LEFT(G2,H2-1)),0)
    
  4. 英寸比较难,因为它可能包含分数。
    确定表示英寸的文本,并使用 TRIM 修剪前导空格。

    Col J: =IFERROR(MID(G2,H2+2,1000)),0)
    Col K: =TRIM(J2)
    
  5. 确定“英寸”文本中是否有分数。
    如果有带分数,则整数和分数之间应有一个空格 (71/2 = 35.5; 7 1/2 = 7.5)
    找出后面所有空格和“/”符号的位置。

    Col L: =IFERROR(SEARCH(" ",K2,1),0)
    Col M: =IFERROR(SEARCH("/",K2,L2+1),0)
    
  6. 查找英寸数或(如果有带分数)整数英寸数。
    如果英寸文本 =“”,则英寸数为 0。
    如果没有“/”符号,则假定该数字为十进制数。
    如果有“/”符号,则整数是空格前的数字

    Col N: =IF(K2="",0,IF(M2=0,VALUE(K2),IFERROR(VALUE(LEFT(K2,L2-1)),0)))
    
  7. 如果有“/”符号,计算分子和分母。
    如果没有分数,分母 = 1。

    Col O: Numerator    =IFERROR(VALUE(IF(M2=0,0,MID(K2,L2+1,M2-L2-1))),0)
    Col P: Denominator  =IFERROR(VALUE(IF(M2=0,1,MID(K2,M2+1,100))),1)
    
  8. 添加数字列表

    Col Q: =I2*12+N2+O2/P2
    

电子表格

答案2

您可以使用 MID 或 Right 来表示英寸,或者您可以将文本转换为列。此外,在分离数据后,您还可以使用公式转换,此公式可以转换所有类型的单位,请参阅帮助。

相关内容