Умножьте значения из полей Excel на условия if - PullRequest
0 голосов
/ 19 октября 2018

Это мой пример Excel, мне нужно получить значения в столбце NEW COST

My excel example

  1. Если строка в названии продуктасодержит (), и в этих скобках есть такие слова, как: pck, pcs, pack или pots, новая стоимость будет такой же, как стоимость

  2. Если dont, а количество больше 0,Новая стоимость будет Стоимость * Количество.Если это условие истинно, он должен создать новый столбец, в котором будет написано Это новая стоимость.

  3. Если количество равно 0, то новая стоимость такая же, как стоимость.

Может ли кто-нибудь помочь мне создать формулу для этого?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Попробуйте:

Sub Evaluation()

Dim LastRow As Long
Dim i As Long

Dim Result As Integer

LastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To LastRow
    If Sheet1.Range("A" & i).Value <> "" Then
        If (InStr(Sheet1.Range("A" & i).Value, "(") > 0) And (InStr(Sheet1.Range("A" & i).Value, ")") > 0) Then
            If (InStr(Sheet1.Range("A" & i).Value, "pck") > 0) Or (InStr(Sheet1.Range("A" & i).Value, "pcs") > 0) Or (InStr(Sheet1.Range("A" & i).Value, "pack") > 0) Or (InStr(Sheet1.Range("A" & i).Value, "pots") > 0) Then
                Sheet1.Range("A" & i).Offset(0, 3).Value = Sheet1.Range("A" & i).Offset(0, 2).Value
            End If
        ElseIf Sheet1.Range("A" & i).Offset(0, 1).Value > 0 Then
            Sheet1.Range("A" & i).Offset(0, 3).Value = Sheet1.Range("A" & i).Offset(0, 2).Value * Sheet1.Range("A" & i).Offset(0, 1).Value
        ElseIf Sheet1.Range("A" & i).Offset(0, 1).Value = 0 Then
            Sheet1.Range("A" & i).Offset(0, 3).Value = Sheet1.Range("A" & i).Offset(0, 2).Value
        End If
    End If
Next i

End Sub
0 голосов
/ 19 октября 2018

Предполагая, что «Название продукта» находится в A1, вы можете вставить эту формулу в D2:

    =IF(AND(IF(IFERROR(FIND("(";A2;1);0)=0;0;1);OR(IF(IFERROR(FIND("pack";A2;1);0)=0;0;1);
IF(IFERROR(FIND("pck";A2;1);0)=0;0;1);IF(IFERROR(FIND("pcs";A2;1);0)=0;0;1);
IF(IFERROR(FIND("pots";A2;1);0)=0;0;1)));C2;C2*B2)

Если «Это новая стоимость» может быть в столбце E, вставьте ее в E2:

=IF(C2=D2;"This is new cost")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...