Excel vlookup循环

时间:2017-05-21 18:33:10

标签: excel vba excel-vba vbscript

免责声明:我既不是excel的专家,也不是vba的专家。所以我需要你帮助解决这个问题。

问题是这样的...... 考虑具有以下值的列

A2通行证

A3通行证

A4通行证

A5 Pass

A6通行证

A7是整体状态单元,它根据A2和A6之间的单元格中的值而不同。

A7中值的条件应为以下

  1. 如果A2和A6之间的单元格中的所有值都是Pass,则A7应为Pass

  2. 如果A2和A6之间的单元格中的其中一个值为Fail,则A7应为Fail

  3. 如果A2和A6之间的单元格中的一个值是“No Run”或“Not completed”或“Not Applicable”,则单元格A7必须具有“Not completed”

  4. 请将整个代码发送给我vba脚本,并将其嵌入excel或其中的公式。

    如果我的提问有点太多,我很抱歉,但你的帮助对我有很大的帮助。

    提前致谢

    SS

3 个答案:

答案 0 :(得分:1)

这是另一种方法:编写代码来创建自定义公式。在VBE(Visual Basic编辑器,通过 ALT + F11 访问)中,添加一个新模块,并在其中粘贴以下代码:

Function Outcome(ResultRange As Range) As String

    Dim Cell As Range
    Dim Result As String

    Result = "Pass"

    For Each Cell In ResultRange

        If Cell.Value = "Fail" Then
            Result = "Fail"
            Exit For
        ElseIf Cell.Value = "No Run" Or Cell.Value = "Not completed" Or Cell.Value = "Not Applicable" Then
            Result = "Not completed"
        End If

    Next Cell

    Outcome = Result

End Function

完成此操作后,您可以从电子表格访问名为OUTCOME的新功能(您可以通过查看我的代码的第一行来重命名它)。如果输入公式

=OUTCOME(A2:A6)

你会得到你想要的结果。请注意,空格以及除了您提到的值之外的任何内容都将被视为与“通过”相同。如果您愿意,那就不难改变。

答案 1 :(得分:0)

您可以将其作为公式实现,而不是使用VBA。在单元格A7中输入以下内容:

=IF(COUNTIF(A2:A6,"No"&"*"),"Not Completed",IF(COUNTIF(A2:A6,"Pass")=5,"Pass",IF(COUNTIF(A2:A6,"Fail"),"Fail","Not accounted for scenario")))

正如之前建议的那样,您可能需要根据应优先使用哪些规则来更改if语句的顺序。

正如其他人所说的那样,你应该真正尝试一个解决方案,并在你陷入困境时分享,分享你已经尝试过的东西。请记住这一点以备将来使用。我建议您了解上述内容,您在Excel中研究COUNTIFIF函数(快速的Google会显示大量资源)。

答案 2 :(得分:0)

这应该在A7中:

= IF(AND((A2 ="通行证&#34),(A3 ="通行证&#34),(A4 ="通行证&#34),(A5 = " Pass"),(A6 =​​" Pass"))," True",IF(OR((A2 ="未完成") ,(A3 ="未完成"),(A4 ="未完成"),(A5 ="未完成"),(A6 =​​"未完成")),"未完成",IF(或(A2 ="不适用"),(A3 ="不适用"), (A4 ="不适用"),(A5 ="不适用"),(A6 =​​"不适用")),"未完成&# 34;,IF(或(A2 =" No Run"),(A3 =" No Run"),(A4 =" No Run"),( A5 =" No Run"),(A6 =​​" No Run")),"未完成","未定义"))) )

这是抽出的版本,可能是大多数人在学习时开始的版本。有一个未定义的地方,你没有提到如果你所解释的情况之外会发生什么会发生什么 我鼓励你阅读IF语句。您可能会再次遇到它们,即使是少量的研究也可能有很长的路要走。如果您对IF语句感到满意,请查看CountIF和VLookup。如果你在excel中做得很多,你可能会遇到这两种情况。

祝你好运!