![如何根据另一列的值清除具有列表数据验证的单元格?](https://linux22.com/image/1286675/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E5%8F%A6%E4%B8%80%E5%88%97%E7%9A%84%E5%80%BC%E6%B8%85%E9%99%A4%E5%85%B7%E6%9C%89%E5%88%97%E8%A1%A8%E6%95%B0%E6%8D%AE%E9%AA%8C%E8%AF%81%E7%9A%84%E5%8D%95%E5%85%83%E6%A0%BC%EF%BC%9F.png)
我有一张包含以下列的测试计划工作表:测试名称、运行?、测试人员、测试人员位置、环境等。“运行?”列已启用数据验证,有效值为“是”和“否”。“测试人员”列也已启用数据验证,并引用电子表格中其他地方的测试人员列表(通过命名范围)。“测试人员位置”列使用索引/匹配公式根据“测试人员”列中的内容查找其值。基本上,我有一个“TesterData”命名范围,其中包含各种测试人员信息,我想在其他工作表中重复此信息,这样用户就不必在工作表之间来回切换。
我希望当有人标记测试不运行(运行?= 否)时,我希望清除测试人员(或将其设置为 N/A)。基本上,如果我们不打算运行测试,那么就不应该为其分配人员。这也会导致“测试人员位置”列设置为 #N/A,因为 TesterData 命名范围内没有空白。这可能吗?
我有一个与列表数据验证相关的问题。对于使用列表数据验证的“测试人员”列,如果有人为给定行选择了“John Doe”,该怎么办?但假设 John Doe 离开了公司,我们将他从列表中删除。我希望清除所有引用“John Doe”的单元格,但感觉列表数据验证的工作方式不是这样。在这种情况下清除是否可行?总之,我仍在学习数据验证的工作原理。
答案1
只需使用 IF 语句修改公式:
=IF(OR(B2="No",ISERROR(<existing reference>)),"", <existing reference>)
其中 B2 是运行?单元格,也是<existing reference>
您当前提取测试器值的方式。