Excel函数:求助,怎么将上表最左边的数字自动识别到右测

2025-04-24 18:51:14
推荐回答(4个)
回答1:

=SUMIF(A1:D1,">0")*H1
用sumif函数
a1:d1 是要求和的区域
“>0"是区域中大于0的进行求和计算
*h1就是你要乘的数量

这个不知道符不符合你的要求

回答2:

如果要用公式写,那就成拖拉机了。写了个拖拉机你试试吧(假设数据从A3开始,H3数组公式):
=SUM(IFERROR(--TRIM(MID(SUBSTITUTE(MID(A3,MIN(FIND(ROW($1:$9),A3&5^19)),MAX(ISNUMBER(--MID(A3,ROW($1:$99),1))*ROW($1:$99))-MIN(FIND(ROW($1:$9),A3&5^19))+1),"*",REPT(" ",99)),ROW($1:$99)*99-98,99)),))*G3

回答3:

Sub test()
    Dim arr() As String
    Dim oRegExp As Object
    Dim oMatches As Object
    Dim iNum As Integer
    Set oRegExp = CreateObject("vbscript.regexp")
    Dim iRow As Integer
    iRow = Sheets(1).UsedRange.Rows.Count
    For ind = 3 To iRow
        arr = Split(Sheets(1).Cells(ind, 1).Value, "*")
        iNum = UBound(arr) - LBound(arr)
        For i = 0 To iNum
            With oRegExp
                .Global = True
                .IgnoreCase = True
                .Pattern = "[0-9]+"
                Set oMatches = .Execute(arr(i))
            End With
            Sheets(1).Cells(ind, i + 2).Value = oMatches(0)
            Sheets(1).Cells(ind, 8).Value = Sheets(1).Cells(ind, 8).Value + CInt(oMatches(0))
            Set oMatches = Nothing
        Next
    Next
End Sub

如果你的数据是按这样的位置,从A列,第三行放的,那么代码可以直接用。

回答4:

根据你的这些数据,用 VBA 正则表达式比较合适。