Как найти десятичное число в текстовой строке в Excel с другими числами в той же строке

Например,

 cmn_writeProfileItem(1,"AXIS_DIST",319.2761477779271) 

Я хочу извлечь только 319.2761477, формула, которую я пробовал, найдет только 1 в текстовой строке.

1 ответ
1

Чтобы вернуть первое нецелое число в строке, вы можете использовать FILTERXML с xPath который отфильтровывает недесятичные числа:

=FILTERXML("<t><s>" &SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"(",","),")",","),",","</s><s>")&"</s></t>","//s[floor(number(.)) != number(.) and number(.)=number(.)]")    

Это вернет все число, а не только до семи десятичных знаков.

создать xml:

"<t><s>" &SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"(",","),")",","),",","</s><s>")&"</s></t>"

аргумент xpath

"//s[floor(number(.)) != number(.) and number(.)=number(.)]"

Если вы действительно хотите, чтобы значение было усечено до седьмого знака после запятой, вам также потребуется выполнить некоторые математические функции.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *