我有一个看起来像这样的表,(第1行仅作为标题):
|----------A----------|---------B--------|--------C---------|---------D--------|
1| String of Strings | Thing 1 | Thing 2 | Thing 3 |
|---------------------|------------------|------------------|------------------|
2| q1-22ll-o7kp-e... | q1 | 22ll | ?????? |
|---------------------|------------------|------------------|------------------|
使用this指南,我已成功填写B2和C2单元格:
B2:=LEFT(A2, SEARCH("-",A2,1)-1)
C2:=MID(A2, SEARCH("-",A2) + 1, SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1)
我试图理解D2的模式。我不完全掌握C2正在做什么 - 我将如何建立C2的公式,以便我可以在我的字符串中获得第三个事物?
我想,一旦我看到D2的模式,我就可以继续选择E2,F2等。
我希望找到适用于Google表格或Excel的解决方案。
答案 0 :(得分:3)
答案 1 :(得分:2)
在Google表格中,您可以在B2
中使用SPLIT
,它会将结果扩展到右侧的单元格:
=SPLIT(A2, "-")
对于每个单独的部分,您可以使用INDEX
:
=INDEX(SPLIT(A2, "-"), , 1)
=INDEX(SPLIT(A2, "-"), , 2)
...
对于与索引无关的最后2项:
=REGEXEXTRACT(A2, ".*-(.*)-")
=REGEXEXTRACT(A2, ".*-(.*)")
答案 2 :(得分:0)
虽然B2
的公式使用直截了当的LEFT
,但C2
的公式有点复杂,并使用函数MID(text, start_num, num_chars)
:
text
显然是输入单元格= A2
start_num
是输出开始的索引,在本例中为SEARCH("-",A2) + 1
,它是第一个-
之后的一个字符。num_chars
是输出将包含的字符数。这是棘手的部分!它实际上通过从第二个破折号的索引中减去第一个破折号的索引来计算第一个-
和第二个-
之间的字符数。这不是递归解决此问题的最佳方法,但我相信理解每个代码非常重要,以便下次编写最佳代码。