(Google 表格)如果选择了下拉选项,如何消除该选项?跟进

问题描述 投票:0回答:1

之前的用户提出了这个问题:

(Google Sheets) 在满足一定数量的具有所述选项的单元格后,如何删除某些下拉选项?

饼干之神用我一直在玩弄的数组代码回答了。

这是一个玩具示例,您可以根据自己的需要进行调整:

1.在Sheet1的A1:E1中创建选项a,b,c,d,e的列表

2.为 A2:E2 中的每个选项创建限制列表(例如 2,1,3,5,3)

  1. 在 G2:G4 中创建人员 Person1、Person2、Person3 的列表

  2. 将数据验证应用于 H2:H4:

    • 使用条件“下拉(从范围)”
    • 设置数据范围为=Sheet1!$A3:$E3(只锁定列,不锁定行)
  3. 在A3中输入以下公式:

    =lambda(人、选择、列表、限制、 makearray(counta(人),counta(列表),lambda(r,c, if(索引(选择,r)<>索引(列表,,c),if(countif(选择,索引(列表,,c))

我们正在使用 MAKEARRAY 创建一个 2D 数组,其中每行都有选项列表,但是我们要求它从每行中省略列表中的元素(如果尚未选择它们)并且对选择数量有预设限制因为该选项尚未达到。显然,在“真实”示例中,您会将用于验证的数据范围放在单独的工作表中,并且可能也会隐藏和保护该工作表。您还可以使用字符串数组文字而不是单元格范围作为选项列表,以使验证列表公式完全独立。

使用他们的例子,你如何允许每个人在相同的限制参数内做出 3 个选择?

每个学生必须选择 3 个委员会。如果其他学生已经选择了这些委员会并且他们已经达到了最大值,下拉列表中的选择将会消失。

Table with Each Person having 3 to choose 3 Activities from a drop down menu

感谢您的宝贵时间。

arrays validation google-sheets dropdown
1个回答
0
投票

我重新设计了我对上一个问题的回答的逻辑(并对其进行了一些整理,因为我们现在可以访问当时没有的

let
,而且我已将选择和限制嵌入到式)以满足每人多项选择的额外要求。

因此,给定您的表格,其中包含 G2:G5 中的人员列表和 Choice1/2/3 作为 H1:J1 中的标题:

  1. 对 H2:J5 应用数据验证:
    • 使用条件“下拉(从范围)”
    • 设置数据范围为=Sheet1!$A1:$E1(只锁定列,不锁定行)
  2. 在A3中输入以下公式:
=arrayformula(let(
people,tocol(G2:G,1),
choices,offset(H2,,,counta(people),3),
list,{"Activity A","Activity B","Activity C","Activity D","Activity E"},
limits,{2,2,2,2,2},
choicesperperson,byrow(choices,lambda(chosen,if(ifna(match(list,chosen,0)),,list))),
underlimit,(counta(people)-countif(choicesperperson,list))<limits,
if(underlimit,choicesperperson,)))

与上次一样,在“真实”示例中,您应该将用于验证的数据范围放在单独的工作表中,并且可能也隐藏和保护该工作表。我已将每个活动的限制设置为 2,但您可以根据需要通过修改 limits 数组中的值来调整此值。

尝试一下,让我知道是否适合您。

© www.soinside.com 2019 - 2024. All rights reserved.