在EXCEL中对单元格进行math运算也是可以的

我有一系列的细胞,我想要做一些math。 但我也希望这些单元格包含一些文本。

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

然后我想要公式忽略文本,只是想出了30。

这可能吗?

为了快速解决scheme,在C1中input“=左(A1,2)+左(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) 

这将减less你的string到每个单元格的前两个字符。

你可以在这里寻找其他方法来删除你不想要的字符。 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中显示结果。

正如我所看到的,你有两个select:

  1. search每个单元格中的数字并进行总结(见下文)。
  2. 将列分为1列数字和1个代码(例如“z001”)。 请参阅function区上的“数据”选项卡,然后单击“数据工具”组上的“文本到列”。

第一种select将是最快捷和最直接的。 您需要在第三列中添加总和,然后使用例如LEFTfunction。 这个function允许你从单元格中检索字符。 看下面的例子:

在这里输入图像说明

为了得到“30”,我在C2上使用了下面的公式:

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

注意这是不理想的,因为这个公式每次都在寻找2个字符。 如果你有一个下面的代码“5z005”的情况下,它将无法正常工作,因为它会尝试总结“5z”,就好像它是一个数字。 在这种情况下,您最好find一个模式(代码=“数字”“z”“数字”),并按照我在选项2上所述分割列。