Excel SUM 字符串的各个部分

Excel SUM parts of a string

提问人:Stephan 提问时间:11/15/2023 最后编辑:Stephan 更新时间:11/16/2023 访问量:63

问:

在Excel中,我有几个单元格,其中包含用破折号分隔的数字,例如:

Example

我使用像这样的公式

=TRIM(TEXTBEFORE(G30:G40;"/";1))

最后,我想将这三个部分分别求和,以便最终结果类似于“12 / 43 / 0”。

虽然这个问题并不完整,但幸运的是,我试图完成什么。

数组 excel 公式 总和

评论

0赞 P.b 11/15/2023
您的公式可能适用于第一个值,但您需要将它们转换为数字,不确定拼写是否正确,或者应该是 ,但请遵循您的示例。=sum(--(TEKSTBEFORE(G30:G40;"/";1)))TEKSTBEFOREKSX

答:

1赞 Mayukh Bhattacharya 11/15/2023 #1

尝试使用TEXTSPLIT()

enter image description here


• 细胞中使用的配方B1

=SUM(--TEXTSPLIT(A1," / "))

enter image description here


=MAP(A1:A7,LAMBDA(φ, SUM(--TEXTSPLIT(φ," / "))))

编辑:正如OP评论的那样:

对不起,我想我不够清楚。我必须分别对所有第一个值、所有第二个值和所有第三个值求和。在此示例中,结果为 4 / 98 / 0。这将是最终结果。感谢您的回复 b.t.w


enter image description here


• 细胞中使用的配方B1

=TEXTJOIN(" / ",,BYCOL(TEXTSPLIT(TEXTAFTER(" / "&A1:A7," / ",{1,2,3})," / "),LAMBDA(α, SUM(--α))))

同样在**版本中,您可以使用Excel BetaGROUPBY()

enter image description here


=GROUPBY(,--TEXTSPLIT(TEXTAFTER(" / "&A1:A9," / ",{1,2,3})," / "),SUM)

或者使用PIVOTBY()

enter image description here


=PIVOTBY(,,--TEXTSPLIT(TEXTAFTER(" / "&A1:A9," / ",{1,2,3})," / "),SUM)

要了解有关 Windows Excel 和 Mac 中新启动功能的更多信息,可以在此处找到:Beta Versions


评论

0赞 Stephan 11/15/2023
对不起,我想我不够清楚。我必须分别对所有第一个值、所有第二个值和所有第三个值求和。在此示例中,结果为 4 / 98 / 0。这将是最终结果。感谢您的回复 b.t.w.
0赞 Mayukh Bhattacharya 11/15/2023
@Stephan使用此公式:=TEXTJOIN(" / ",,BYCOL(TEXTSPLIT(TEXTAFTER(" / "&A1:A7," / ",{1,2,3})," / "),LAMBDA(α, SUM(--α))))
0赞 Mayukh Bhattacharya 11/15/2023
@Stephan参考编辑。这一个单一的公式。
1赞 Stephan 11/15/2023
嗨,@Mayukh,干得好。我已经用过你以前的公式了。并且会看看这个两个。我不想只是复制它,我也想理解它。再次感谢!!
1赞 JvdV 11/15/2023
我认为最简洁/直观的是在这里使用,即使我喜欢使用 ,它只是添加了冗余参数。BYCOL()GROUPBY()
1赞 P.b 11/15/2023 #2

在 Excel 的 BETA 版本中:=BYCOL(--TEXTSPLIT(TEXTAFTER("/"&A1:A10,"/",SEQUENCE(,3)),"/"),SUM)

enter image description here

还:=MAP(SEQUENCE(,3),LAMBDA(a,SUM(--TEXTSPLIT(TEXTAFTER("/"&A1:A10,"/",a),"/"))))

或者,如果您在无法访问 Lambda 的情况下使用 Excel 2021:=MMULT(SEQUENCE(,ROWS(A1:A10),,0),--TEXTSPLIT(TEXTAFTER("/"&A1:A10,"/",SEQUENCE(,3)),"/"))

评论

0赞 Mayukh Bhattacharya 11/15/2023
我得到了关于使用JvdV先生或或来自JvdV的单一公式的更新!BYCOL()BYROW()SCAN()
1赞 P.b 11/15/2023
是的,这意味着越来越短的公式。
2赞 Stephan 11/16/2023
我还没有工作,使用 BYCOL。但我稍后会再试一次。我已经能够使用 Mayukh 提供的解决方案。非常感谢您的所有输入/信息。
0赞 P.b 11/16/2023
正如发布的那样,我的 BYCOL 解决方案目前仅在您使用 Beta Chanel(功能预发布)时才有效。对于当前版本,我们需要包含 LAMBDA:=BYCOL(--TEXTSPLIT(TEXTAFTER("/"&A1:A10,"/",SEQUENCE(,3)),"/"),LAMBDA(b,SUM(b))