是否可以将单词“each”、“Any 2 for”、“kg”等从这些单元格中取出并放入另一个单元格中...只留下$x.xx价格,以便进行排序。
以上示例如下:
1) $10.99 kg
2) $16.00 each
3) Any 2 for $32.019
问题的第二部分是,如果第一个解决方案不适用于这种情况 - 我可以提取$x.xx以下示例中“保存”一词后面的值:
4) $11.00 each Save $3.00
5) $2.87 each 20% off, Save $0.72 $1.15 per 100ml
如您能提供任何帮助,我们将不胜感激。
答案1
“把它们放进另一个单元格...只留下 $x.xx 的价格”
您无法使用标准公式更改 Excel 中的原始单元格,您能做的是将价格提取到新的单元格/列中。
提取第一个$..
:
=MID(A1,FIND("$",A1),FIND(" ",A1,FIND("$",A1))-FIND("$",A1))
此函数查找第一个$
并从中提取文本,直到下一个空格
提取后面的数字Save
:
=MID(A5,FIND("Save",A5)+5,IFERROR(FIND(" ",A5,FIND("Save",A5)+5),LEN(A5)+1)-(FIND("Save",A5)+5))
它的工作原理类似,但它首先找到Save
$
此解决方案仅当价格以/开头Save
并以空格或字符串结尾结尾时才有效,因此如果数字后面有逗号,则此解决方案将不起作用。如果您想要比 Excel 的免费正则表达式插件更通用的解决方案,这些插件可提供 regEx 查找工作表函数。那将是您的最终解决方案。
答案2
尝试这个公式:
=MID(A1,SEARCH("$",A1,IF(ISNUMBER(SEARCH("Save",A1)),SEARCH("Save",A1),1)),SEARCH(" ",A1&" ",SEARCH("$",A1))-SEARCH("$",A1))
注意:仅当值前面有“$”时才有效