如何根据两个下拉列表的选择有条件地要求 18 个以上的字段

How to conditionally require 18+ fields based on selection of two dropdowns

我是 Sharepoint 2010 的新手,具有我称之为高中一年级编码经验的水平,尽管我通常可以跌跌撞撞地修改自己的方法。我目前无法访问 Sharepoint 设计器,但从我目前所做的搜索来看,它可能是必需的。我仍然希望找到解决以下问题的 OOTB 解决方案。

我的任务是在 Sharepoint 上构建事件解决跟踪 sheet。我的老板非常关心接受法律审计,并且对所需信息有一些非常具体的要求。 A 列包含指示最终解决方案的 5 个选项的下拉列表。 B 列包含一个下拉列表,其中有 4 个选项指示初始问题。根据 A 和 B 中的选择,C-X 中的不同 Columns 需要为空白、非空白或包含特定条目。我能找到的唯一方法是为 A 和 B 的每个组合创建一个包含嵌套 if 的列表验证,从而产生 20 个嵌套 if。然而,sharepoint 仅限于 7 个嵌套 ifs,因此我正在寻找任何可能的解决方案。

*此列表将主要在数据sheet 视图中访问,因此 "HTML in calculated column" 类型的解决方案不可行。

您可以使用计算列将验证公式分解为更易于管理的块。

让我们从一个简单的例子开始。

Condition 1: If the initial problem was that the user's computer was too slow and the final solution was restarting the computer, you need to fill in the [C] column.

Condition 2: If the initial problem was that the user was on fire and the final solution was dousing them with water, you need to fill in the [D] column.

您可以在一个公式中执行所有列表验证,如下所示:

=IF(
    AND([A]="Restarted Computer",[B]="Computer is slow"),
    NOT(ISBLANK([C])),
    IF(
        AND([A]="Doused with water",[B]="User is on fire"),
        NOT(ISBLANK([D]),
        TRUE
    )
 )

但这又长又难看(尤其是当你将它浓缩成一行时)。

相反,您可以添加两个计算列,一个对应您要检查的每个条件。为了这个示例,假设您添加了一个名为 C_is_valid 的列和一个名为 D_is_valid:

的列

C_is_valid计算列公式:

=IF(AND([A]="Restarted Computer",[B]="Computer is slow"),NOT(ISBLANK([C])),TRUE)

D_is_valid计算列公式:

IF(AND([A]="Doused with water",[B]="User is on fire"),NOT(ISBLANK([D]),TRUE)

更新的验证公式:

=AND([C_is_valid],[D_is_valid])

很容易看出这如何简化一组非常复杂的验证条件...

=AND(C_is_valid,AND(D_is_valid,AND(E_is_valid,AND(F_is_valid,AND(G_is_valid,AND(H_is_valid,I_is_valid)))))

但即便如此,也可以通过将其中一些 AND() 合并到多个计算列中来简化,这样您的最终验证公式就可以像这样简单:

=AND([First set of conditions is valid],[Second set of conditions is valid])