繁体   English   中英

EXCEL:在单元格中乘以逗号分隔的个位数

[英]EXCEL: Multiplying comma separated single-digit numbers in a cell

我在一个用逗号分隔的单元格中有一个 8 个个位数的字符串。 我需要按照这个确切的特定顺序将每个数字乘以 1,2,3,4,5,6,7,8。

如果我有A2= a,b,c,d,e,f,g,h我需要结果B2= (a*1),(b*2),(c*3),(d*4),(e*5),(f*6),(g*7),(h*8)

例如A2=1,2,3,4,5,6,7,8 => B2=1,4,9,16,25,36,49,64

我已经制定了这个公式 -

=LEFT(MID(A2,1,1)*1&","&MID(A2,3,1)*2&","&MID(A2,5,1)*3&","&MID(A2,7,1)*4&","&MID(A2,9,1)*5&","&MID(A2,11,1)*6&","&MID(A2,13,1)*7&","&MID(A2,15,1)*8,LEN(A2))

它确实适用于前几个数字,但我认为这在处理所有数字时遇到了麻烦。 如果我输入0,0,0,0,0,0,0,1它工作正常

但是如果我输入0,0,0,0,0,2,2,2 ,我会得到0,0,0,0,0,12,14 (这只有 7 个结果)

1,2,3,4,5,6,7,8 只有 6 个结果。

我最近才开始学习 excel,任何帮助将不胜感激。

在 Office 365 中,我们使用 FILTERXML 和 SUBSTITUTE 创建数字数组。 然后使用 TEXTJOIN 在使用 SEQUENCE 创建一个1,2,3,...的数组并相乘后,我们将它们重新组合成一个字符串。 使用了 LET,所以我们不需要重复长的 FILTERXML:

=LET(num,FILTERXML("<t><s>"&SUBSTITUTE(A2,",","</s><s>")&"</s></t>","//s"),TEXTJOIN(",",,num*SEQUENCE(COUNT(num))))

此版本不关心字符串中有多少个数字。

在此处输入图像描述


你这样做的原因是LEFT(...,LEN(A2)) 它只返回与原始字符相同数量的字符。 删除该部分,不需要它:

=MID(A2,1,1)*1&"," &MID(A2,3,1)*2&","&MID(A2,5,1)*3&","&MID(A2,7,1)*4&","&MID(A2,9,1)*5&","&MID(A2,11,1)*6&","&MID(A2,13,1)*7&","&MID(A2,15,1)*8

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM