Excel 公式返回第一个静态字符和两个可能的第二个字符之一之间的字符串?

时间:2021-04-10 14:29:29

标签: excel vba excel-formula

我有一个公式可以查看名为“FolderDataImport”的工作表上的单元格 A1(复制整个列)。

=MID(LEFT(FolderDataImport!A1,FIND("(",FolderDataImport!A1)-1),FIND("- ",FolderDataImport!A1)+2,LEN(FolderDataImport!A1))

它选择并返回字符“-”之后和字符“(”之前的任何数据/文本。

这对于下面的示例文本 1 非常有效,它将返回“示例文本”

示例文本 1 “这是 - 一个示例文本(有时格式化)[像这样](我会)称之为示例 1”

但有时它正在查看的数据的格式如示例文本 2 所示,其中在字符“[”之前没有包含在左右括号中的文本,这意味着它返回“-”和(例如“另一个例子[但不同]”

示例文本 2 “这是 - 另一个例子 [但不同](我会)称之为例子 2”

可能有更好的方法来做到这一点,但我需要公式做的是从左侧的第一个字符开始找到“-”,然后如果找到“(”,则返回字符 (如在我的示例文本 1 中)“An Example Text”但是如果它在找到“(”之前找到了一个“[”(如文本示例 2 所示,那么它只返回之间的文本“-”和“[”,使用我的文本示例 2,将是“另一个示例”。

这种增加的复杂性超出了我有点缺乏的技能?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

enter image description here

B1 中的公式:

=MID(A1,FIND("-",A1)+2,MIN(FIND({"[","("},A1))-FIND("-",A1)-3)

我猜如果没有 Microsoft365,它将是 CSE 输入的公式。

相关问题