我对 Excel 函数和 VBA 编程还不熟悉,所以这个问题对我来说是个真正的挑战。我有一个电子表格,用于跟踪 64 位测试中应用程序的状态,我想为其添加一些额外的功能。
这就是我需要该函数做的事情:
当应用程序的退出(Adobe 1.0)为“是”时,它将采用“退出到 UID(20)”字段中的值,并在工作表中搜索 UID 字段中包含“20”的应用程序(Adobe 2.0)。当它与该 UID 匹配时,如果 Adobe 2.0 的退出为“否”且 Win7 x64 完全测试为“通过”,那么我想从该行(Adobe 2.0)中获取 AD 组名称并将其填充到 Adobe 1.0 的备用列中。我还想将“可以迁移到 64 位”单元格标记为“是”。如果 Win7 x64 完全测试 Adobe 2.0 为“失败”,该函数仍将在 Adobe 1.0 的备用字段中填充 AD 组名称,但 Adobe 1.0 的“可以迁移到 64 位”将为“否”。
完整的电子表格包含大约 1800 个项目,所以我需要它才能处理整个文档。
这是示例数据的屏幕截图,其中顶部表格中包含原始数据,底部表格中则包含函数结果。希望我的解释有意义。任何帮助或建议都将不胜感激。谢谢!
答案1
除非我遗漏了什么,否则使用 IF() 和 VLOOKUP() 似乎相当容易。你试过这些吗?我会给你第一部分的提示,然后你可以使用该信息来处理第二部分。
在 H2 中输入:
=IF(F2="是",VLOOKUP(G2,A$2:B$nn,2,FALSE),"")
此处“nn”是 A 列和 B 列的最后一行。您可以通过选择 H2,按住 SHIFT 键并单击 H 列中的最后一个单元格,然后从编辑菜单中选择“填充 > 向下”来向下填充此公式。
工作原理如下:IF() 首先检查 F2 中是否有“Yes”。如果有,则返回 VLOOKUP() 的结果。如果没有,则返回空白(“”)。VLOOKUP() 部分在范围 A$2:B$nn 的第 1 列中查找 G2(本例中为 20),并返回该范围第 2 列中的相应值(Adobe 2.0)。倒数第二个“2”指定要从中获取结果的列,FALSE 指定精确匹配。
有关 VLOOKUP() 的更多信息,请参见在此支持页面上。
有关 IF() 的更多信息,请参见在此支持页面上
现在您应该能够为单元格 I2 编写一个公式,该公式将检查 F2 是否为“是”,然后根据 L3(提示:查找范围的第 10 行)是否包含“通过”返回“是”或“否”。
尝试解决第二部分,如果遇到问题,请在此处提出问题。祝你好运。
附言:这里有一个问题,因为您的 I 列有一些值,当您填写公式时,您不想覆盖它们。如果 L 列中所有地方都有“通过”,而 I 列中都有“是”,那么这是一个简单的修复方法。稍后会详细介绍这一点,但请尝试为此创建一个公式,并将其发布在评论或对问题的编辑中。