2013-05-31 3 views
2

Я часто сталкиваюсь с ошибками VALUE! в моих вычислениях, потому что они содержат числа и текст. Как я могу оставить текст в ячейке и продолжить вычисление?VALUE! Игнорировать текст в вычислении ячейки excel

Например:

клеток A1 содержимое выглядеть следующим образом: 101.1 J

клеток A2 содержимое выглядеть следующим образом: 500 U

клеток A3 содержимое выглядеть следующим образом: 0.2

Если я хочу добавить A1 + A2 + A3 в ячейку A4, как я могу игнорировать J и U для расчета 101.1 + 500 + 0.2 для получения 602.3 в ячейке A4?

Спасибо!

+0

Есть ли причина, либо ответы ниже не поможет? – Santosh

ответ

3

Вам нужно извлечь значения из строк - и это можно сделать, только если у вас есть какая-то информация о формате для чисел. В вашем примере, вы можете разместить следующую формулу в B1: B3, а затем добавить =SUM(B1:B3):

=IF(ISNUMBER(A1),A1,VALUE(LEFT(A1,SEARCH(" ",A1)-1))) 

Приведенная выше формула будет извлечь число и преобразовать его в значение - если это не было уже несколько.

1

Использование Пользовательской функции

места ниже коды в стандартном модуле

Function add_num(cell1, ParamArray Arr() As Variant) 

    Dim temp As Double 
    For i = LBound(Arr) To UBound(Arr) 
     temp = temp + GetNumber(Arr(i)) 
    Next 

    add_num = GetNumber(cell1.Value) + temp 
End Function 

Function GetNumber(ByVal str As String) As Double 
    Dim objRegEx As Object 
    Set objRegEx = CreateObject("VBScript.RegExp") 
    objRegEx.IgnoreCase = True 
    objRegEx.Global = True 

    objRegEx.Pattern = "\d{1,2}([\.,][\d{1,2}])?" 

    Set allMatches = objRegEx.Execute(str) 

    For i = 0 To allMatches.Count - 1 
     result = result & allMatches.Item(i) 
    Next 

    GetNumber = result 
End Function 

add_num function может быть вызвано из интерфейса Excel с помощью =addnum(<cells>). Он принимает несколько ячеек.

enter image description here

Смежные вопросы