对单元格进行数学计算也可以在EXCEL

时间:2015-12-06 16:48:32

标签: excel excel-formula range formula

我有一系列细胞,我想做一些数学计算。但我也希望这些单元格包含一些文本。

例如,我想要A1和B1的总和,其中A1包含数字10和" z001"和B1包含数字20和" Z004"。

然后我希望公式忽略文本,然后提出30。

这可能吗?

2 个答案:

答案 0 :(得分:1)

要快速解决方案,请在C1中键入“= Left(A1,2)+ Left(B1,2)”。将此等式拖动到您的范围的其余部分,您应该得到您想要的结果,前提是您添加的数字都是2位数。

如果需要在多个单元格上运行相同的公式,也可以使用VBA。

如果您只需删除字母即可获得相同的结果,请尝试:

For i = 58 To 127
'Change out str with the variable name you have assigned to your cell value.
str = Replace(str, Chr(i), "")
Next i

58和127表示Ascii表格中不是数字http://www.asciitable.com/的字符范围中的第一个和最后一个位置

如果您只想在等式中包含每个单元格的前两个数字并忽略“Z00#”,您可以尝试:

strLeft = Left(str, 2)

这会将你的字符串减少到每个单元格的前两个字符。

您可以在此处查找删除不需要的字符的其他方法。 http://www.globaliconnect.com/excel/index.php?option=com_content&view=article&id=269:excel-vba-string-functions-left-right-mid-len-replace-instr-instrrev&catid=79&Itemid=475

这是一个如何通过简单的添加来实现这样的事情的例子。

Dim a as range
Dim b as range
Dim aLeft as integer
Dim bLeft as integer
Dim cleft as integer

a = Worksheets("WorksheetName").Cells(A1).Value
b = Worksheets("WorksheetName").Cells(B1).Value

aLeft = Left(a, 2)
bLeft = Left(b, 2)

cLeft = aLeft + bLeft

Worksheets("WorksheetName").Cells(C1).Value = cLeft

这将添加单元格A1和B1的前两位数字,然后在C1中显示结果。

答案 1 :(得分:0)

在我看来,你有两个选择:

  1. 搜索每个单元格中的数字并总结(见下文)。
  2. 将列拆分为包含1列数字和1个代码(例如     “Z001”)。请参阅功能区上的“数据”选项卡,然后单击“文本到”     列“在数据工具组上。
  3. 第一种选择是最快捷,更直接。您需要在第三列中使用和,然后使用,例如,函数LEFT。此功能允许您从单元格中检索字符。见下面的例子:

    enter image description here

    要获得“30”,我在C2上使用了以下公式:

    =LEFT(A2,2)+LEFT(B2,2)
    

    请注意,这并不理想,因为此公式每次都会查找2个字符。如果你有一个具有以下代码“5z005”的场景,它将无法工作,因为它会尝试将“5z”加起来,就像它是一个数字一样。在这种情况下,你最好找到一个模式(代码=“数字”“z”“数字”)并按照我在选项2中说的那样拆分列。