excel 如何从不同长度的字符串中提取特定的数据?

k4emjkb1  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(323)

我在excel中得到了这种类型的体育活动数据:

我尝试从D列中提取一个“卡路里”值到另一个单元格。有什么建议吗?
尝试通过=MID函数来实现,但是这些字符串的长度不同。有什么建议吗?

qltillow

qltillow1#

你可以尝试下面的公式,

·单元格E1中使用的公式

=TEXTAFTER(TEXTBEFORE(D1,",""count"),"calorie"":")+0

另一种方法,如果您不使用MS365,则使用如下所示的公式

·单元格F1中使用的公式

=REPLACE(LEFT(D1,FIND("""count",D1)-2),1,FIND("calorie",D1)+8,"")+0

或者,在MS365中使用CHOOSECOLS()TEXTSPLIT()

·单元格G1中使用的公式

=CHOOSECOLS(TEXTSPLIT(D1,{":",","},,1),8)/1
gmxoilav

gmxoilav2#

=TEXTBEFORE(TEXTAFTER(A1,"""calorie"":"),",")
xe55xuns

xe55xuns3#

使用VBA时,您可以使用Split方法,因为模式相同:

Sub ExtractCalorie()
  Dim cel As String: cel = ActiveCell.Value
  'in the active cell is the string: {"duration":67,"altitude":0.0,"distance":21499,"calorie":89000,"count":0,"floor":0,"steps":0}
  Debug.Print Split(cel, ",")(3) 'it returns "calorie":89000
  'If only the value needed:
  Debug.Print Split(Split(cel, ",")(3), ":")(1) 'it returns 89000
End Sub

它可以很容易地转换成一个函数,也作为UDF工作,从一个公式在单元格中调用...

相关问题