Как найти десятичное число в текстовой строке в 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 не будет опубликован.