首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用if条件从excel字段中乘值

使用if条件从excel字段中乘值
EN

Stack Overflow用户
提问于 2018-10-19 07:01:10
回答 2查看 393关注 0票数 1

这是我的excel示例,我需要在列新成本中获得值。

  1. 如果产品名称中的字符串包含(),并且括号中的单词为: pck、pck、pack或pot,则新成本将与成本相同。
  2. 如果不和数量大于0,新的成本将是成本*数量。如果此条件为真,则应创建新列,该列将写入这是新的成本。
  3. 如果数量为0,则新成本与成本相同。

有人能帮我创造公式吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-19 09:02:53

假设“产品名称”在A1中,您可以将该公式粘贴到D2中:

代码语言:javascript
复制
    =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中:

代码语言:javascript
复制
=IF(C2=D2;"This is new cost")
票数 1
EN

Stack Overflow用户

发布于 2018-10-19 09:32:46

尝试:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52887288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档