Excel 中的数据验证 - 两个单元格不能相同

Excel 中的数据验证 - 两个单元格不能相同

我有两列标题分别为“发送”和“接收”,我正在向电子表格添加数据验证层。

单元格已经具有数据验证设置,仅允许选择列表。

我想添加另一个层来检查这一点,sending != receiving因为这没有意义。

我想保持这个电子表格宏免费,因为它已经处于这种状态,并且我认为不值得增加“启用内容”和不同扩展的复杂性。

有几个问题:

  • 是否可以在 Excel 中添加两层“数据验证”,我只看到可以添加一层
  • 即使仅使用“一层”,我也没有看到检查值是否不等于另一个值的选项,但我想自定义可能有办法做到这一点。

答案1

动态尺寸合格验证选择列表

  • 验证选项列表动态地增大和缩小。
  • 从后续选项列表中排除选项列表中选定的值。
  • 两个选择列表互相排斥其他选择列表的值。
  • 两个公式:
    1. 帮助列验证选择列表
    2. 数据验证列表来源

决斗选择列表

“接收”(已打开)选择列表没有选项d可用,
因为它已被“发送”选择列表选中。

辅助列;动态验证选择列表公式:

=INDEX($I$34:$I$38,AGGREGATE(15,6, ROW($I$34:$I$38)/($I$34:$I$38 <> $K$42),ROW($A1)) - ROW($I$34)+1)

  • 动态生成的验证选择列表(辅助列)。
    • 粘贴至J34如图所示;“发送验证”范围的第一个单元格。
    • 不是 CSE,只需将副本拖至原始选择列表的长度即可。
  • $I$34:$I$38通用(原始)验证列表范围。
  • $K$42排除的选择列表单元格(其他选择列表单元格具有此处不可用的值)。
  • 重复第二、(第三、第四……)验证选项列表
    • 选择列表$K$42使用此验证列表。
    • 对于此验证选项列表公式,$K$42使用创建的第一个辅助列更改为选项列表:$J$42在图像中。
  • 用于排除其他单元格值的 Mod。
    • ($I$34:$I$38 <> $K$42)(($I$34:$I$38 <> $K$42)*($I$34:$I$38 <> $Z$42))

数据验证列表源公式:

=OFFSET($J$34,0,0,ROWS($J$34:$J$38)-SUMPRODUCT(--ISERROR($J$34:$J$38)),1)

  • 动态范围
    • 粘贴到第一个公式生成的选择列表的验证源文本框中。
    • $J$42图像中的第一个选择列表(从第二个验证选择列表中排除)
    • $K$42图像中的第二个选择列表(从第一个验证选择列表中排除)
  • $J$34粘贴辅助列验证选择列表公式的第一个单元格。
  • $J$34:$J$38包含辅助列选项列表公式的所有单元格的范围。

关于这些公式的更多注释:

  • 当剪切和粘贴它们引用的单元格时,辅助列公式和验证源地址引用都将正确修改。
  • 辅助列公式中除一个引用之外的所有引用都是绝对的,因此它们可以正确拖动/复制。
  • 当开始一个新公式时,请确保的相对行地址为ROW($A1)1。
  • 数据验证列表源公式不需要绝对地址。

答案2

我最终使用了“级联数据验证”。 尽管Ted D. 的回答可能“更干净”,并且可能是较大列表的更好选择,我发现我的方法更简单,而且我有一个小列表,所以它有效。

以下是我所做工作的极其简化的版本:

  • 我创建了选项的“主要列表”,然后必须为每个选项创建一个包含剩余选项的新列表。
  • 每个辅助列表的标题都必须是主列表中其选项的名称。

也就是说,在我的例子中,我有一个名为“LABs”的列表,然后有两个分别名为“A”和“B”的列表。

  • 然后我将第一个数据验证部分设置为“列表”-->=LABs
  • 第二个单元格数据验证设置为列表 --> =INDIRECT(F2)(第一个数据验证单元格)
  • 我为整整 2 列设置了此项,它将逻辑沿列向下传递,以直接检查左侧的单元格
  • 请参阅 URL 以获取另一个示例
  • 专业提示:然后我通过将文本变为白色来隐藏列表!

  • 对我来说最难理解的部分是“从属列表的名称必须与主列表中的匹配条目完全相同”。

在此处输入图片描述

相关内容