如何在Excel中对单元格中的所有位数求和

yzxexxkh  于 2023-01-14  发布在  其他
关注(0)|答案(5)|浏览(142)


我知道如何使用以下公式对单元格中的所有数字求和:= SUMPRODUCT(1 * MID(A2,ROW(INDIRECT("1:"& LEN(A2))),1))但是对于从左向右而不是垂直排列的单元格区域,我该如何做呢?我希望输出的是数据下方的行,而不是数据旁边的行。请参见所附的屏幕截图。
我想对单元格B2、C2、D2、E2和G2中的数字求和,得到7、4、5、6、9和9。然后我想把这六个数字加在一起。这就是2017年电子表格的每个主行的两个输出。我已经在所附的屏幕截图中手动完成了,但我想知道是否有一个宏可以使用。
谢谢!
我试着为每个主行手动这样做,但这很耗时。必须有更好的方法。

6gpjuf90

6gpjuf901#

您可以尝试:

A2中的公式:

=MAP(A1:F1,LAMBDA(x,SUM(--MID(x,SEQUENCE(LEN(x)),1))))

如果您有多个行,需要将这些行挤在中间,请尝试:

I1中的公式:

=LET(x,FILTER(A:G,A:A<>""),REDUCE(TAKE(x,1),SEQUENCE(ROWS(x)-1),LAMBDA(a,b,LET(y,INDEX(x,b+1),VSTACK(a,y,HSTACK(TAKE(y,,1),MAP(DROP(y,,1),LAMBDA(c,SUM(--MID(c,SEQUENCE(LEN(c)),1))))))))))

如果您还需要总计,那么就需要在其中嵌套一些HSTACK()函数。

mfpqipee

mfpqipee2#

您可以尝试以下VBA代码:

Sub AddSum()

Dim sumCellNumber As Long
sumCellNumber = 8

For rw = 2 To ActiveSheet.UsedRange.Rows.Count      ' Skip headers
    If ActiveSheet.Cells(rw, 1).Value <> "" Then    ' Date cell
        ActiveSheet.Cells(rw, sumCellNumber).Formula = "=SUM(B" & rw & ":G" & rw & ")" ' Set formula to sum the colums
        If sumCellNumber = 8 Then ' Change the position of the sum cell and background color
            ActiveSheet.Cells(rw, sumCellNumber).Interior.ColorIndex = 17 ' Result in H column
            sumCellNumber = 9
        Else
            ActiveSheet.Cells(rw, sumCellNumber).Interior.ColorIndex = 27 ' Result in I column
            sumCellNumber = 8
        End If
    End If
Next rw

End Sub

它的作用是:

  • 从活动工作表中获取所有已使用的行
  • 如果日期列不为空
  • 然后设置SUM公式,将B列中的数字加到G列中
  • 根据屏幕截图,使用背景index在H或I列中显示结果
jvlzgdj9

jvlzgdj93#

我不确定您到底想要什么,但以下内容可能会有所帮助:
要对单个单元格中的数字求和:

=SUM(--MID(B2,SEQUENCE(LEN(B2)),1))

要对单元格区域中的数字求和:

=LET(digits,TEXTJOIN(,,B2:G2),SUM(--MID(digits, SEQUENCE(LEN(digits)),1)))
envsm3lx

envsm3lx4#

1.单击单元格H2
1.键入=总和(B2:G2)
1.按ENTER键
1.再次点击H2
1.向下拖动单元格右下角的小黑框以复制所有行的公式。

1bqhqjot

1bqhqjot5#

我不知道你为什么要对一个数字的位数求和,但我记得从小学开始,这是一种知道一个数字是否能被9整除的方法:如果一个数的位数之和能被9整除,那么这个数本身也是。
我很快意识到这可以递归地完成(例如,2345678的数字之和是35,这些数字之和也可以取,结果是8,所以不能被9整除)。
如果这是你的目标,你可以把整个事情反过来,而不是取数字之和的数字之和...,你可以检查模9,得到这个公式:

=IF(MOD($B4,9)=0,9,MOD($B4,9))

(The =IF()构造避免总和等于零。)
下面是它的截图:

相关问题