【问题标题】:Multiply values from excel fields with if conditions将excel字段中的值与if条件相乘
【发布时间】:2019-03-24 01:06:17
【问题描述】:

这是我的 excel 示例,我需要在 NEW COST 列中获取值

  1. 如果产品名称中的字符串包含 (),并且括号中的字词如:pck、pcs、pack 或 pots,则新成本将与 cost 等值相同

  2. 如果没有且数量大于 0,则新成本将为 Cost*Quantity。如果这个条件为真,它应该创建一个新的列来写This is new cost。

  3. 如果 Quantity 为 0,则新成本与成本相同。

有人可以帮我为此创建公式吗?

【问题讨论】:

  • 您已经尝试了哪些内容,遇到了哪些错误/不需要的结果?我们不是这个平台上的免费编码员/公式编写者,因此最好展示您已经付出的努力。似乎这对于一些 IF 语句的使用来说应该是直截了当的
  • 是的,我尝试了很多选项:=ISNUMBER(SEARCH("pack",A2)) - 如果在字符串中搜索单词,我会这样做,但我不知道如何在此处添加,多了一个词,后面的else条件怎么写?

标签: excel if-statement conditional-statements


【解决方案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")

【讨论】:

  • 你有英文 Excel 吗?它对我很有效:prnt.sc/l7vdfk
  • 我刚刚从我的excel中直接复制了公式,请再试一次(我在上面的答案中修改了代码)
  • 也许你的 excel 使用 , 而不是 ;在公式中?
【解决方案2】:

试试:

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

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 2016-06-29
    • 2018-03-14
    • 1970-01-01
    • 2017-03-19
    相关资源
    最近更新 更多