0")D1: =SUMIF(D3:D11,">

如何在EXCEL单元格里提取字符并求和

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在A1单元格里数组为1+10-20在B1单元格里数组为-2+55-122 ;请问如何把 A1和B1单格里正负数各自提取求和,如这样,提取A1 单元与B1的数字,1、10、55在C1求和。提取-20、-2、-122在D1求和,求这两个公式,请指教!

你可以直接 copy 这几个公式

C1: =SUMIF(D3:D11,">0")

D1: =SUMIF(D3:D11,"<0")

C2: =SUBSTITUTE(SUBSTITUTE(IF(LEFT(A1,1)="-",0&A1,A1)&IF(LEFT(B1,1)="-",B1,"+"&B1),"+",","),"-",",-")&","

C4: =FIND(",",C$2,C3+1)

D3: =VALUE(MID($C$2,C3+1,C4-C3-1))

甚至可以适用于类似 3+12-45+32+2 和 8-9-111+6 等复杂情况。

如果你非得用一个函数实现(不用任何辅助单元格),需要用VB。

补充回答: VB 方法如下,

在Excel里,同时按Alt和F11,进入VB界面,右键点左上窗口的 Thisworkbook,插入,模块,在右边窗口粘贴如下代码: Function

SumP(Range1 As Range, Range2 As Range) As Long

Dim i, j As Byte

Dim tmp As String

SumP = 0

j = 1

tmp = IIf(Left(Range1, 1) = "-", Range1, " " & Range1) & IIf(Left(Range2, 1) = "-", Range2, "+" & Range2) & " "

tmp = Replace(tmp, "-", " -")

tmp = Replace(tmp, "+", " ")

For i = 1 To Len(tmp) - Len(Replace(tmp, " ", "")) - 1

If CLng(Trim(Mid(Left(tmp, InStr(j + 1, tmp, " ") - 1), j + 1, 10))) > 0 Then SumP= SumP+ CLng(Trim(Mid(Left(tmp, + 1, tmp, " ") - 1), j + 1, 10)))

j = InStr(j + 1, tmp, " ")

Next i

End Function

Function SumN(Range1 As Range, Range2 As Range) As Long

Dim i, j As Byte

Dim tmp As String

SumN = 0

j = 1

tmp = IIf(Left(Range1, 1) = "-", Range1, " " & Range1) & IIf(Left(Range2, 1) = "-", Range2, "+" & Range2) & " "

tmp = Replace(tmp, "-", " -")

tmp = Replace(tmp, "+", " ")

For i = 1 To Len(tmp) - Len(Replace(tmp, " ", "")) - 1

If CLng(Trim(Mid(Left(tmp, InStr(j + 1, tmp, " ") - 1), j + 1, 10))) < 0 Then SumN= SumN+ CLng(Trim(Mid(Left(tmp, + 1, tmp, " ") - 1), j + 1, 10)))

j = InStr(j + 1, tmp, " ")

Next i

End Function 会到 Excel 里,在 C1 输入 =sump(a1,b1) ,在 D1 输入 =sumn(a1,b1)InStr(j InStr(j

以上方法,全部经过检验,满足你的要求

公式是单个或多个函数的结合运用。

AND “与”运算,返回逻辑值,仅当有参数的结果均为逻辑“真(TRUE )”时返回逻辑“真(TRUE )”,反之返回逻

辑“假(FALSE )”。条件判断

AVERAGE 求出所有参数的算术平均值。数据计算

COLUMN 显示所引用单元格的列标号值。显示位置

CONCA TENATE 将多个字符文本或单元格中的数据连接在一起,显示在一个单元格中。字符合并

COUNTIF 统计某个单元格区域中符合指定条件的单元格数目。条件统计

DATE 给出指定数值的日期。显示日期

DATEDIF 计算返回两个日期参数的差值。计算天数

DAY 计算参数中指定日期或引用单元格中的日期天数。计算天数

DCOUNT 返回数据库或列表的列中满足指定条件并且包含数字的单元格数目。条件统计

FREQUENCY 以一列垂直数组返回某个区域中数据的频率分布。概率计算

IF 根据对指定条件的逻辑判断的真假结果,返回相对应条件触发的计算结果。条件计算

INDEX 返回列表或数组中的元素值,此元素由行序号和列序号的索引值进行确定。数据定位

INT 将数值向下取整为最接近的整数。数据计算

ISERROR 用于测试函数式返回的数值是否有错。如果有错,该函数返回

TRUE ,反之返回FALSE 。逻辑判断LEFT 从一个文本字符串的第一个字符开始,截取指定数目的字符。截取数据

LEN 统计文本字符串中字符数目。字符统计

MATCH 返回在指定方式下与指定数值匹配的数组中元素的相应位置。匹配位置

MAX 求出一组数中的最大值。数据计算

相关文档
最新文档