从多个符号之前或之后提取文本

时间:2018-08-17 04:47:52

标签: excel

当前,我有一个来自餐厅的日志文件,其中包含产品名称和所有名称。
我只需要提取产品名称,而不提取同一单元格上的价格。
报告格式

Product Code | Product Name
00041             Beef Salted Tongue,1000 Yen (excl.tax)
00042             Pork Loin, 980 Yen (excl.tax)


并非每个产品名称都以" , [price][excl.tax]结尾
那么,是否有必要将其从整个列中删除?


我用过=LEFT(A1,(FIND(",",A1,1)-1))
它确实有帮助,但是某些产品包含多个“,”。
例如:鸡蛋,泡菜,酱汁,胡椒粉。
因此,如果我使用上述公式,它只会给我鸡蛋。

3 个答案:

答案 0 :(得分:2)

根据讨论中的评论发布答案:

  1. 使用下面的链接在单元格内容中查找最后一个逗号的位置。
  

Excel: last character/string match in a string

  1. 要解决您遇到的第二个问题(将值粘贴到已过滤的行中),请参考以下解决方案(由TurgutKapisiz提供)
  

这确实存在于Excel中(尽管被隐藏或未立即隐藏)   直观)。

     

选择数据后,您需要将其复制到   已过滤的非连续单元格:

     

在Excel 2007和更早版本中:编辑->转到->特殊->可见单元格   仅将选择数据,然后在Excel中粘贴特殊值   2010年及以上:在“主页”选项卡中,找到并选择->转到特殊->   仅可见单元格将选择数据,然后您执行“选择性粘贴”   值

答案 1 :(得分:1)

所需的公式显示在所附的图像中,用于计算所需文本的提取量(单击图像可清楚查看)。

= LEFT(B2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},B2&“ 0123456789”))-1) //对于excel中的数据或信息@ B2单元格

输出 Output

答案 2 :(得分:1)

在单元格B3中输入以下公式

= IF(ISERROR(FIND(“ Yen”,B2,1)),B2,LEFT(B2,FIND(“#”,SUBSTITUTE(B2,“,”,“#”,LEN(B2 )-LEN(SUBSTITUTE(B2,“,”,“”))),1)-1))

公式的

第1部分检查日元的存在。 如果有可能带有文本Yen的产品,则可以用 If(Right(B2,1)=“)”)或仅存在的任何其他唯一文本替换此零件商品的价格存在时。

公式的

第2部分,用逗号替换并比较替换逗号前后的文本长度。它将逗号替换为Has(#),然后将文本返回到Hash的左侧。

请告诉我这是您想要做的还是需要任何更改。

此致

Vijaykumar Shetye,

Panaji,果阿

印度