这是我的excel示例,我需要在NEW COST列中获取值
如果产品名称中的字符串包含(),并且方括号中的字样是:pck,pcs,pack或pots,则新成本将与cost相同值
如果不输入并且数量大于0,则新成本为Cost * Quantity。如果满足此条件,则应创建一个新列,写上“这是新成本”。
如果“数量”为0,则新成本与成本相同。
有人可以帮我创建公式吗?
答案 0 :(得分:1)
假设“产品名称”在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")
答案 1 :(得分:0)
尝试:
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