【问题标题】:extract after last instance of a character but only if extracted text is 4 or less characters在字符的最后一个实例之后提取,但前提是提取的文本是 4 个或更少的字符
【发布时间】:2021-08-26 20:03:33
【问题描述】:

我正在努力在名称列中查找指定的扩展名。

示例数据:

  1. abc.jpg
  2. abc.jpeg
  3. abc.abc.pdf
  4. abc.abc.abcdf

我只想显示:

  1. jpg
  2. JPEG
  3. pdf

所以基本上我发现了一个公式,它在指定字符的最后一次出现之后提取所有内容(在本例中为“.”),如下所示:

=TRIM(RIGHT(SUBSTITUTE(A1,".",REPT(" ",LEN(A1))),LEN(A1)))

但是使用这个我有输出:

  1. jpg
  2. JPEG
  3. pdf
  4. abcdf

如何限制它只提取“扩展”?我的想法是让它“仅在 4 个或更少字符时显示)。

谢谢

【问题讨论】:

  • 你如何定义一个有效的扩展?所以如果一个文件的扩展名为 abcd,那没关系,但 abcdf 不是?我会保持你的公式不变,如果你认为它不是真正的扩展,可能会发出警告。
  • 嘿,谢谢你的回复!关键是我实际上无法定义一个有效的(或者我不知道如何),所以我可以假设 4 个字符或更少(大多数扩展名如 xlsx、pdf、jpg、jpeg 等)因为我有很多在最后一个 '.' 之后有超过 5 个字符的结果我不想显示它们

标签: excel


【解决方案1】:

假设数据还可以包括没有点的场合,那么这里有一个解决方案。

单元格 B2 公式:

=IF(AND(ISNUMBER(SEARCH(".",A2)),LEN(TRIM(RIGHT(SUBSTITUTE(A2,".",REPT(" ",LEN(A2))),LEN(A2))))<5),TRIM(RIGHT(SUBSTITUTE(A2,".",REPT(" ",LEN(A2))),LEN(A2))),"invalid")

向下拖动。首先检查两个条件是否为真:

  1. 名称中有一个点。
  2. “扩展名”的长度少于 5 个字符。

如果两者都为真,则返回扩展名。否则,显示“无效”。

【讨论】:

  • 太棒了!这正是我想要的!谢谢你 m8(我不能投票给你的解决方案,因为少于 15 个代表,但这对我来说是完美的)!真的很有帮助!
猜你喜欢
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-23
  • 2013-03-31
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
相关资源
最近更新 更多