Google 表格 - 从下拉列表中删除使用过的项目
Google Sheets - Removing the used items from drop-down lists
在 Google 表格中,我有一列包含可用序列号的列表(例如,A 列)。
在其他地方(比如 B 列),用户必须从 A 列中列出的序列号中选择使用的序列号;我将数据验证与下拉列表一起使用,以防止用户使用不存在的序列号。
我的目标是通过从下拉列表中删除所有已使用的序列号,让用户仅选择剩余的可用序列号。
通过使用 FILTER 函数,结合 MATCH 和 ISNA,我能够创建可用序列号的列(例如,C 列)。使用的函数是:
=FILTER(A2:A;ISNA(MATCH(A2:A;B2:B;0)))
。
然后,我将 B 列(用户必须 select 使用的序列号)的数据验证列表从 A 列(所有序列号)移动到 C 列(过滤后的序列号)。我还在数据验证表单中添加了“拒绝输入”,这样我就可以只允许用户输入 C 列中列出的值。
有效,但之前在 B 列输入的所有序列号都有一个红色小三角,表明数据无效。当然,发生这种情况是因为所有输入的值都已从数据验证列表中删除。
我可以简单地忽略红色三角形,但我不太喜欢这个解决方案,因为它看起来总是 sheet 上有错误,当我们有很多数据时它会很难将此问题与其他问题区分开来。
是否有不同的解决方法?
谢谢
只有您可以使用的公式:
=TRANSPOSE(FILTER(A2:A, NOT(COUNTIF(C3:C4, A2:A)), A2:A<>""))
=TRANSPOSE(FILTER(A2:A, NOT(COUNTIF({C2; C4}, A2:A)), A2:A<>""))
=TRANSPOSE(FILTER(A2:A, NOT(COUNTIF(C2:C3, A2:A)), A2:A<>""))
然后隐藏列并使用验证:
这是结果:
demo sheet
更新:
第一个效果:
=TRANSPOSE(FILTER(A2:A, NOT(COUNTIF(C3:C4, A2:A)), A2:A<>""))
第 2 个和下一个 fx:
=TRANSPOSE(FILTER(A:A, NOT(COUNTIF({
INDIRECT("C2:C"&ROW()-1); INDIRECT("C"&ROW()+1&":C")}, A:A)), A:A<>""))
在 Google 表格中,我有一列包含可用序列号的列表(例如,A 列)。 在其他地方(比如 B 列),用户必须从 A 列中列出的序列号中选择使用的序列号;我将数据验证与下拉列表一起使用,以防止用户使用不存在的序列号。
我的目标是通过从下拉列表中删除所有已使用的序列号,让用户仅选择剩余的可用序列号。
通过使用 FILTER 函数,结合 MATCH 和 ISNA,我能够创建可用序列号的列(例如,C 列)。使用的函数是:
=FILTER(A2:A;ISNA(MATCH(A2:A;B2:B;0)))
。
然后,我将 B 列(用户必须 select 使用的序列号)的数据验证列表从 A 列(所有序列号)移动到 C 列(过滤后的序列号)。我还在数据验证表单中添加了“拒绝输入”,这样我就可以只允许用户输入 C 列中列出的值。
有效,但之前在 B 列输入的所有序列号都有一个红色小三角,表明数据无效。当然,发生这种情况是因为所有输入的值都已从数据验证列表中删除。
我可以简单地忽略红色三角形,但我不太喜欢这个解决方案,因为它看起来总是 sheet 上有错误,当我们有很多数据时它会很难将此问题与其他问题区分开来。
是否有不同的解决方法?
谢谢
只有您可以使用的公式:
=TRANSPOSE(FILTER(A2:A, NOT(COUNTIF(C3:C4, A2:A)), A2:A<>""))
=TRANSPOSE(FILTER(A2:A, NOT(COUNTIF({C2; C4}, A2:A)), A2:A<>""))
=TRANSPOSE(FILTER(A2:A, NOT(COUNTIF(C2:C3, A2:A)), A2:A<>""))
然后隐藏列并使用验证:
这是结果:
demo sheet
更新:
第一个效果:
=TRANSPOSE(FILTER(A2:A, NOT(COUNTIF(C3:C4, A2:A)), A2:A<>""))
第 2 个和下一个 fx:
=TRANSPOSE(FILTER(A:A, NOT(COUNTIF({
INDIRECT("C2:C"&ROW()-1); INDIRECT("C"&ROW()+1&":C")}, A:A)), A:A<>""))