如何在Excel中使用数据验证来检查/限制来自不同工作表的多列之间的条件?

zu0ti5jz  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(203)

我正在尝试创建一个具有填充限制的Excel文件。这是一个较大数据的小示例。假设我的Excel文件中有两个工作表。第一个工作表(工作表1)有两个值(值1和值2),分别对应于特定类型和特定ID,它看起来如下所示:

第二个表单(Sheet 2)也包含ID和TYPE列,另一个表单名为YEAR,最后一个表单名为VALUE(SUM),必须是Sheet 1中相同类型和ID的VALUE 1和VALUE 2的总和,将所有年份计算在一起。

例如,在ID=22且TYPE=A的Sheet 1中,值1和值2的总和(1 + 2 = 3)必须与VALUE之和相同包含相同ID和TYPE的所有年份的(SUM)(22和A、)。我希望使用数据验证在Sheet 2中引发错误,如果所有值的总和(对于相同的ID和类型)不同于值1 +值2。
在上面的例子中,如果我在Sheet 2中输入了一个错误的数字,使得总和不等于3,那么它应该会引发一个错误。有人可以帮助我吗?

bis0qfac

bis0qfac1#

您可以将帮助器列添加到显示检查结果的工作表2中。
这是E2中的公式

=LET(
sumSheet1, SUM(FILTER('Sheet 1'!$C$2:$D$5,('Sheet 1'!$A$2:$A$5=A2)*('Sheet 1'!$B$2:$B$5=B2))),
sumSheet2, SUM(FILTER($D$2:$D$12,($A$2:$A$12=A2)*($B$2:$B$12=B2))),
IF(sumSheet1 = sumSheet2,"OK","Total for ID = " & A2 & " and Type = " & B2 & " has to be " & sumSheet1 & " but equals to " & sumSheet2)
)

您还可以使用基于上述公式(设置为警告)的用户定义公式进行数据验证。

=LET(
sumSheet1, SUM(FILTER('Sheet 1'!$C$2:$D$5,('Sheet 1'!$A$2:$A$5=A2)*('Sheet 1'!$B$2:$B$5=B2))),
sumSheet2, SUM(FILTER($D$2:$D$12,($A$2:$A$12=A2)*($B$2:$B$12=B2))),
sumSheet1 = sumSheet2)
)

但是用户没有关于这两个和的信息...来调整这些值。

相关问题