Макрос преобразования данных Excel не распознает числа с помощью <в начале - PullRequest
0 голосов
/ 27 июня 2018

Я работаю с большим количеством результатов лабораторных испытаний, которые представлены в одном столбце в Excel, однако результаты представлены в разных единицах из разных лабораторий, поэтому мне нужно преобразовать некоторые данные, чтобы все лабораторные данные были в одном и том же ед.

Я создал макрос, который просматривает лабораторные данные, которые я хочу изменить, и преобразует данные, однако некоторые результаты представлены как <0,07 и т. Д., Однако макрос ничего не распознает и не преобразует с помощью <в начале числа. </p>

Может кто-нибудь предложить способ, которым я могу изменить следующий макрос, чтобы также преобразовать результаты лабораторных исследований, которые содержат <в начале? </p>

Sub CONVERT_UNITS()
'
' CONVERT_UNITS Macro
'

'
    ActiveCell.FormulaR1C1 = _
        "=IF(RC12=""ug/kg"",RC11/1000,IF(RC12=""mg/l"",RC11*1000,RC11))"
    Range("M2").Select
    Selection.AutoFill Destination:=Range("M2:M" & Range("L" & Rows.Count).End(xlUp).Row)
    Range(Range("M2"), Range("M2").End(xlDown)).Select
End Sub

Для справки мои лабораторные данные содержатся в столбце K, а единицы измерения представлены в столбце L. Я хочу, чтобы преобразованные лабораторные результаты были помещены в столбец M (см. Пример данных ниже). Я конвертирую только те результаты, которые выражены в мкг / кг (результат деления на 1000) и мг / л (умножение результата на 1000), все остальные результаты останутся без изменений.

Example Lab Test Data

1 Ответ

0 голосов
/ 27 июня 2018

Я бы создал пользовательскую функцию для этого:

Public Function convertResults(ByVal result As Variant, ByVal unit As String) As Variant
    Dim hasSmaller As Boolean
    If Left(result,1) = "<" Then
        hasSmaller = True
        result = Replace(result, "<", "")
    End If
    If unit = "ug/kg" Then result = result / 1000
    If unit = "mg/l" Then result = result * 1000
    If hasSmaller Then result = "<" & result
    convertResults = result
End Function

... а затем (например, в ячейке M2) просто напишите =convertResults(K2, L2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...