mozilla-nss-3.11.4-0.7
gdb-10.12-1.5.2
glibc-dcc-atv-1.0.3-10.6
我想在下一个B C D单元格中将它分开
mozilla-nss 3.11.4 0.7
gdb 10.12 1.5.2
glibc-dcc-atv 1.0.3 10.6
现在我可以使用左,右和找功能来做但不太好用
我用
LEFT(B33,FIND(".",B33)-2) =B cell
RIGHT(B33,FIND(".",B33)) =C Cell
RIGHT(D33,FIND("-",D33)-1) = D Cell
回答不对,任何人都可以帮我纠正我的功能谢谢
答案 0 :(得分:2)
这是一个不完美的解决方案:
=LEFT(A1,FIND("-",A1)-1)
=SUBSTITUTE(A1,B1,"")
=SUBSTITUTE(LEFT(C1,FIND("-",C1,2)),"-","")
=SUBSTITUTE(SUBSTITUTE(C1,D1,""),"-","")
您的答案在B,D和E栏中。
答案 1 :(得分:2)
这里的关键点使得任务变得困难 - 我们需要在字符串中使用最后两个连字符作为分隔符,并保持其余部分完好无损。对于这种情况, ARRAY公式是最好的。我的解决方案如下:
A2
开始,将值放在A列中。=MAX(IFERROR(SEARCH("-",$A2,ROW(INDIRECT("1:"&LEN($A2)))),0))
,但按 CTRL + SHIFT + ENTER 而不是通常的 ENTER - 这将定义一个ARRAY公式,并在其周围生成{}
括号(但不要手动输入!)。=MAX(IFERROR(SEARCH("-",$A2,ROW(INDIRECT("1:"&LEN($A2)))),0)*IF(IFERROR(SEARCH("-",$A2,ROW(INDIRECT("1:"&LEN($A2)))),0)=MAX(IFERROR(SEARCH("-",$A2,ROW(INDIRECT("1:"&LEN($A2)))),0)),0,1))
并再次按 CTRL + SHIFT + 输入 因此,我们将获得字符串中最后两个连字符的位置。剩下的很简单 - 普通的LEFT / MID / RIGHT东西:
=LEFT($A2,$C2-1)
, ENTER 。=MID($A2,$C2+1,$B2-$C2-1)
, ENTER 。=RIGHT($A2,LEN($A2)-$B2)
, ENTER 。B:F
。如果临时列B:C是不需要的 - 您应该在D:F中替换对B:C内容的引用(即用{A2}实际公式替换$A2
中的=LEFT($A2,
),但这将是导致TOO复杂的ARRAY公式,仍然在做他们的工作 - 但第二天很难理解,即使是创作者也是如此)
至于上面的解决方案 - 也许它可能会得到改进或简化,但是我非常熟悉这种ROW...INDIRECT
构造,因为我不得不分析兆字节的统计数据,所以对我来说它同样容易创建LEFT / RIGHT。无论如何,它似乎有效。
为方便起见,我的示例文件已共享:https://www.dropbox.com/s/p49x32t3a0igtby/StringHyphensSeparate.xlsx
希望这很有帮助)
ADDITION - 找到最后两个连字符的2个简化解决方案(其余步骤与上述相同):
更简单的ARRAY公式:
=MAX(IF(MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)="-",ROW(INDIRECT("1:"&LEN($A2))),0))
,但按 CTRL + SHIFT + ENTER 而不是通常的 ENTER - 这将定义一个ARRAY公式,并在其周围生成{}
括号(但不要手动输入!)。=LARGE(IF(MID($A2,ROW(INDIRECT("1:"&LEN($A2))),1)="-",ROW(INDIRECT("1:"&LEN($A2))),0),2)
并再次按 CTRL + SHIFT + 输入 使用SUBSTITUTE
函数的常规公式:
=SEARCH("@",SUBSTITUTE($A2,"-","@",LEN($A2)-LEN(SUBSTITUTE($A2,"-",""))))
, ENTER 。=SEARCH("@",SUBSTITUTE($A2,"-","@",LEN($A2)-LEN(SUBSTITUTE($A2,"-",""))-1))
, ENTER 。 SUBSTITUTE
解决方案的关键是它可能只替换匹配的某些实例,即仅替换第二个或第三个连字符。通过SUBSTITUTE
公式再次确定连字符的总数:原始字符串的长度MINUS字符串的长度,所有连字符都替换为空字符串:LEN($A2)-LEN(SUBSTITUTE($A2,"-","")
。
这里还有一个技巧 - 虽然我们应该保持原始字符串的完整性,但我们仍然可以为中间解决方案做任何事情!因此,我们用@
替换连字符,然后在临时字符串中搜索@
。
以上所有解决方案都有效,请选择您喜欢/更了解的内容。希望这也有助于理解数组公式,因为对于相同的任务,有两种不同的方法。
我更新了示例文件以包含最后2个示例+生成的megaformulas没有中间步骤,链接是相同的并且位于上面。祝你好运!