剥去字母

时间:2016-01-04 17:51:06

标签: excel-vba formatting excel-formula format strip

我有一个巨大的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;但它什么都没做。

3 个答案:

答案 0 :(得分:2)

有几种方法可以解决这个问题。我在下面展示了两个,两个都可以完全不同。

<强>式

=IF(IFERROR(ISNUMBER(VALUE(LEFT(A1,1))),FALSE),A1,RIGHT(A1,LEN(A1)-2))

公式位于B列 enter image description here

<强> 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

结果在原始列中(注意,覆盖数据。没有撤消,所以首先保存

enter image description here

答案 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