Excel:以逗号分隔的单个单元格数字
Excel: Dividing comma separated single cell numbers
我在单个 Excel 单元格中有一串数字,用逗号分隔,例如A2 = "4,3,2,7"
。我想要一个公式能够将单元格 B2
中的这些数字除以 2,例如B2 = "2,1,1,3"
(奇数应向下取整而不是向上取整)
公式需要能够占:
- 更小或更大的数字串
- 对于单位数和双位数
- 偶数或奇数
- 没有 VBA
- 公式可以使用多列但不能使用分隔文本到列功能(由于单元格位置)
我能够得到一个公式来对 A2
(4,3,2,7 = 16)
中的数字字符串求和,但不能除以 2。我对字符串求和的公式如下。感谢任何帮助,谢谢!
{=SUM(IF(ISERR(VALUE(MID(A2,ROW($A:OFFSET($A,LEN(A2)-1,0)),1))),0,VALUE(MID(A2,ROW($A:OFFSET($A,LEN(A2)-1,0)),1))))}
在您的示例中,将此公式用于单元格 B1
:
=SUBSTITUTE(SUBSTITUTE(A1,",","000")/2,"000",",")
那么结果是这样的:
| A | B |
+---------+---------+
1| 4,2,6,8 | 2,1,3,4 |
2|
嗯,这是我第二次尝试解决(我希望)您的问题。如果您的字符串在单元格 A2
中,则将此代码放入单元格 B2
:
=LEFT(IFERROR(ROUNDDOWN(MID(A2,1,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,3,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,5,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,7,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,9,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,11,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,13,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,15,1)/2,0),""),LEN(A2))
它最多可以处理 8 个数字字符串,以及奇数。
更新
这个公式可以处理两位数,但它只支持 1 到 4 个字符串数字(例如 (25,5,36,48)):
=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))
我在单个 Excel 单元格中有一串数字,用逗号分隔,例如A2 = "4,3,2,7"
。我想要一个公式能够将单元格 B2
中的这些数字除以 2,例如B2 = "2,1,1,3"
(奇数应向下取整而不是向上取整)
公式需要能够占:
- 更小或更大的数字串
- 对于单位数和双位数
- 偶数或奇数
- 没有 VBA
- 公式可以使用多列但不能使用分隔文本到列功能(由于单元格位置)
我能够得到一个公式来对 A2
(4,3,2,7 = 16)
中的数字字符串求和,但不能除以 2。我对字符串求和的公式如下。感谢任何帮助,谢谢!
{=SUM(IF(ISERR(VALUE(MID(A2,ROW($A:OFFSET($A,LEN(A2)-1,0)),1))),0,VALUE(MID(A2,ROW($A:OFFSET($A,LEN(A2)-1,0)),1))))}
在您的示例中,将此公式用于单元格 B1
:
=SUBSTITUTE(SUBSTITUTE(A1,",","000")/2,"000",",")
那么结果是这样的:
| A | B |
+---------+---------+
1| 4,2,6,8 | 2,1,3,4 |
2|
嗯,这是我第二次尝试解决(我希望)您的问题。如果您的字符串在单元格 A2
中,则将此代码放入单元格 B2
:
=LEFT(IFERROR(ROUNDDOWN(MID(A2,1,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,3,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,5,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,7,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,9,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,11,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,13,1)/2,0),"")&","&IFERROR(ROUNDDOWN(MID(A2,15,1)/2,0),""),LEN(A2))
它最多可以处理 8 个数字字符串,以及奇数。
更新
这个公式可以处理两位数,但它只支持 1 到 4 个字符串数字(例如 (25,5,36,48)):
=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))