【问题标题】:Extract last line in excel cell提取excel单元格中的最后一行
【发布时间】:2016-04-27 07:57:13
【问题描述】:

我的文件中有一个列,其中每个单元格都包含以下格式的一些文本:

dd/mm/yyyy: blah blah blah

dd/mm/yyyy: blah blah blah

dd/mm/yyyy: blah blah blah

我希望能够从该单元格中提取最后一条评论(查看它的最后更新时间)。我尝试使用以下公式

IF(ISERROR(RIGHT(H447,FIND(CHAR(10),H447))),H447,RIGHT(H447,FIND(CHAR(10),H447)))

我认为理论上会显示从最后一个换行符开始的所有内容,但事实并非如此。它会告诉我,以上面的例子

lah blahdd/mm/yyyy: blah blah blah

我不明白为什么这不能正常工作。或者实际上做到这一点的唯一方法是使用宏?

【问题讨论】:

  • 这个公式似乎对我有用。
  • 虽然这样稍微好一点,因为它去掉了最后一个换行符...=IF(ISERROR(RIGHT(A1,FIND(CHAR(10),A1)-1)),A1,RIGHT(A1,FIND(CHAR(10),A1)-1))(为了测试我把内容放在A1,而不是H447
  • 单行长度不同时不起作用。当您要查找最后一个 CHAR(10) 时,FIND 会找到第一个 CHAR(10)。
  • 是的,这就是问题所在 - 每条线的长度都不同。我认为使用 RIGHT() 会从头到尾开始查找过程,所以拿起最后一个换行符?会以某种方式找到[换行符] AND xx/xx/xxxx 吗?不知道该怎么做

标签: excel extract formula


【解决方案1】:

首先,请参阅this post,了解确定字符串中字符的最后一次出现。

下面的公式将完成你所追求的......

=IF(ISERROR(RIGHT(A1,LEN(A1)-FIND("@",SUBSTITUTE(A1,CHAR(10),"@",(LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),"")))/LEN(CHAR(10)))))),A1,RIGHT(A1,LEN(A1)-FIND("@",SUBSTITUTE(A1,CHAR(10),"@",(LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),"")))/LEN(CHAR(10))))))

相当长,但有效...

【讨论】:

  • 这很好用,我从来没有见过这样使用替代品,真的很聪明。谢谢!
  • @OldUgly 你能介绍一下你的公式在做什么吗?我不是一个超级用户,我很想能够修改你在那里做的事情,比如把下一行拉到最后一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多