如何根据两个下拉列表的选择有条件地要求 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])
我是 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])