我有一系列细胞,我想做一些数学计算。但我也希望这些单元格包含一些文本。
例如,我想要A1和B1的总和,其中A1包含数字10和" z001"和B1包含数字20和" Z004"。
然后我希望公式忽略文本,然后提出30。
这可能吗?
答案 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)
在我看来,你有两个选择:
第一种选择是最快捷,更直接。您需要在第三列中使用和,然后使用,例如,函数LEFT。此功能允许您从单元格中检索字符。见下面的例子:
要获得“30”,我在C2上使用了以下公式:
=LEFT(A2,2)+LEFT(B2,2)
请注意,这并不理想,因为此公式每次都会查找2个字符。如果你有一个具有以下代码“5z005”的场景,它将无法工作,因为它会尝试将“5z”加起来,就像它是一个数字一样。在这种情况下,你最好找到一个模式(代码=“数字”“z”“数字”)并按照我在选项2中说的那样拆分列。