展开一个数字string公式

我有一个Excel公式,search一个4个数字的string,在一个单独的单元格逗号分隔,然后将它们除以2(向下舍入)。

例如单元格A1 = 5,35,44,7
单元格B1公式= 2,17,22,3

我想扩展公式,以适应从1到15的任何地方的数字string。目前的公式,适用于1至4号string的完美是如下。 我想保持公式不使用VBA单个单元格。 关于如何扩大我目前拥有的想法?

 =LEFT(IFERROR(ROUNDDOWN(MID(A2,1,IFERROR(SEARCH(",",A2,1)-1,LEN(A2)))/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,SEARCH(",",A2,1)+1,IFERROR(SEARCH(",",A2,SEARCH(",",A2,1)+1)-SEARCH(",",A2,1)-1,LEN(A2)-SEARCH(",",A2,1)))/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,SEARCH(",",A2,SEARCH(",",A2,1)+1)+1,IFERROR(SEARCH(",",A2,SEARCH(",",A2,SEARCH(",",A2,1)+1)+1)-SEARCH(",",A2,SEARCH(",",A2,1)+1)-1,LEN(A2)-SEARCH(",",A2,SEARCH(",",A2,1))))/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,SEARCH(",",A2,SEARCH(",",A2,SEARCH(",",A2,1)+1)+1)+1,IFERROR(SEARCH(",",A2,SEARCH(",",A2,SEARCH(",",A2,SEARCH(",",A2,1)+1)+1)+1)-SEARCH(",",A2,SEARCH(",",A2,SEARCH(",",A2,1)+1)+1)-1,LEN(A2)-SEARCH(",",A2,SEARCH(",",A2,SEARCH(",",A2,1)+1)+1)))/2,0),""),LEN(A2)) 

这种方法几乎可以处理单个单元格中的无限数量的项目,但是它需要多个公式。

将值放在A1中 。 在A2中input:

 =IFERROR(--ROUNDDOWN(TRIM(MID(SUBSTITUTE(A$1,",",REPT(" ",999)),ROWS($1:1)*999-998,999))/2,0),"") 

并抄下来。 (这些是parsing的个别值,除以二,然后舍入)

B2中input: =A2 。 在B3中input:

 =B2 & IF(A3="","","," & A3) 

并抄下来。 (这将执行重新连接) 。 最后在C1中input:

 =INDEX(B:B,MATCH("",A:A,0)) 

在这里输入图像描述

使用VBA解决这个问题要容易得多 。 这个小UDF()做同样的事情:

 Public Function Brad(inpt As String) As String Dim a ary = Split(inpt, ",") With Application.WorksheetFunction For Each a In ary Brad = Brad & "," & .RoundDown(CDbl(a) / 2, 0) Next a Brad = Mid(Brad, 2) End With End Function