2017-02-10 2 views
0

У меня есть два столбца в моем файле excel. Столбец A - числовые значения, а столбец B - единицы (кг/г). Мне нужно преобразовать все значения в g (как в столбце c). Вот пример:Excel: Редактировать колонку A, если столбец B равен значению

A  B  C 
0.75  kg 750.00 
0.80  kg 800.00 
700.00 g  700.00 
500.00 g  500.00 

Я смотрел на скрипты VBA, но так как я не использовал их, прежде чем я не в состоянии изменить их к моим потребностям на всех. Есть идеи?

+5

Зачем использовать vba? Положите это в C1: = IF (B2 = «кг», A2, A2/1000) – User632716

+0

Также ваш пример не имеет смысла, как 500 г = 700 кг? – User632716

+3

@tompreston - это специальное программное обеспечение для супермаркетов :) – Vityata

ответ

1

Если вы не хотите использовать VBA (и вам не нужно, действительно), формула выше от @tom_preston равна почти правильно.

В "C2" вы можете использовать формулу = IF (B2 = "кг", A2 * 1000, A1) и просто скопировать ее по линии.

+0

Я не знал, что вы можете сделать это без VBA. Большое спасибо человеку и вам тоже @tompreston – VeeK

0

Если вы хотите, чтобы это было написано в VBA, вопрос, заданный здесь, - это код, который будет помещен в рабочий лист.

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim cellChanged As Range, c As Range 

Const myVal As String = "kg" 

Set cellChanged = Intersect(Target, Columns("B")) 

    If Not cellChanged Is Nothing Then 
     For Each c In cellChanged 
      If UCase(c.Value) = UCase(myVal) Then 
       c.Offset(, 1).Value = c.Offset(, -1).Value/1000 
      else 
       c.Offset(, 1).Value = vbnullstring 
      End if 
     Next 
     End if 
End Sub 

Как это помогает провести прекрасный день!

+0

Спасибо за ваш ответ, но, как отметили другие, простая формула намного лучше, чем сценарий VBA. – VeeK

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