我有一张 Excel 表,其中有一列单元格包含如下数据:
brand=Nike,size=Large,color=Red
我想提取 'brand=' 之后和 ',' 之前的文本
在上面的例子中,公式将提取单词“Nike”。
我已尝试将文本放入列中,但不幸的是,数据并不总是按照相同的顺序排列(例如,size= 或 color= 可能首先出现在单元格中)。
品牌名称的长度可能不同(例如 Nike、Reebok、Under Armour 等)。
我当前的公式给我一片空白:
=LEFT(A2, SEARCH("brand=",A2)-1)
有人可以提供一个公式来提取这些数据吗?
答案1
答案2
第一个问题是您的搜索返回“1”,即“品牌”出现在字符串的第一个位置,而左侧仅返回该数量的字符。按照此路线,您要做的就是将“品牌”的长度添加到字符串中,然后再搜索逗号并将其添加。
如果不知道字符串中的“品牌”在哪里,您首先需要裁剪该点之前的所有内容。
因此,SEARCH("brand=",A2)
我们从修剪字符串的开头开始RIGHT
:
=RIGHT(A2,LEN(A2)-SEARCH("brand=",A2)+1)
我们使用这样LEN
我们就可以得到完整的字符串长度减去“品牌”的起始位置。
这给了我们一个以“brand=”开头的字符串。
+1
然后,我们可以通过改变to的值来优化 RIGHT,-5
以去掉“brand=”
=RIGHT(A2,LEN(A2)-SEARCH("brand=",A2)-5)
从这里开始,事情变得很混乱,因为我们需要,
在尝试修剪字符串的同时找到第一个。辅助单元格可能更干净、更快,但您可以(对于小型电子表格)只需使用上述相同的公式两次。这只给了我们最后一个LEFT
也是最后一个SEARCH
:
=LEFT(RIGHT(A2,LEN(A2)-SEARCH("brand=",A2)-5), SEARCH(",",RIGHT(A2,LEN(A2)-SEARCH("brand=",A2)-5))-1)
可能有更干净的方法可以做到这一点,这只是其中一种方法。