我有一个巨大的Excel工作表,其中包含一列中的所有内容,但它包含以下格式的数据:
=IF(LEFT(C1,1)>9,IF(LEFT(C1,1)<9,RIGHT(C1,LEN(C1)-2),C1))
我需要从以数字
以外的任何内容开头的行中删除字母和空格到目前为止,我尝试使用一个简单的公式,例如:
{{1}}
在我看来,它应该删除每一行的前2个字符&#34; 9&#34;并且对任何小于&#34; 9&#34;但它什么都没做。
答案 0 :(得分:2)
有几种方法可以解决这个问题。我在下面展示了两个,两个都可以完全不同。
<强>式强>
=IF(IFERROR(ISNUMBER(VALUE(LEFT(A1,1))),FALSE),A1,RIGHT(A1,LEN(A1)-2))
<强> VBA 强>
Sub stripAlpha()
Dim wks As Worksheet
Set wks = Worksheets("Sheet1")
Dim lastRow As Long
lastRow = wks.Range("C1").End(xlDown).Row
Dim rng As Range
Set rng = wks.Range(Cells(1, 3), Cells(lastRow, 3))
For Each cell In rng
If Not IsNumeric(Left(cell, 1)) Then
cell.Value = Right(cell, Len(cell) - 2)
End If
Next cell
End Sub
结果在原始列中(注意,覆盖数据。没有撤消,所以首先保存)
答案 1 :(得分:1)
我最终使用了我已经做过的部分工作。
我拿了D栏并输入:
=MID(C1,2,1) = " "
这在我的专栏
中给了我真或假在E中,我使用了:
=IF(LEFT(D1,1)="T",MID(C1,3,255),C1)
从D列中任意为TRUE的行中删除前2个字符
:)
我计划将其转换为VBA以便以后自动化,但这是现在的简单公式方法
答案 2 :(得分:0)
你可以尝试这个$value
。