在 Google 表格中,我有一列包含可用序列號的串列(比如 A 列)。在其他地方(例如,B 列),用戶必須從 A 列列出的序列號中選擇使用的序列號;我使用帶有下拉串列的資料驗證,以防止用戶使用不存在的序列號。
我的目標是允許用戶只選擇剩余的可用序列號,方法是從下拉串列中洗掉所有已使用的序列號。
通過使用 FILTER 功能,結合 MATCH 和 ISNA,我能夠創建可用序列號的列(例如,C 列)。使用的函式是:
=FILTER(A2:A;ISNA(MATCH(A2:A;B2:B;0)))。然后,我將 B 列(用戶必須在其中選擇使用的序列號)的資料驗證串列從 A 列(所有序列號)移動到 C 列(過濾后的序列號)。我還在資料驗證表單中添加了“拒絕輸入”,因此我可以只允許用戶輸入列 C 中列出的值。
它可以作業,但所有先前在 B 列輸入的序列號都有一個紅色小三角形,表示資料無效。當然,這是因為所有輸入的值都已從資料驗證串列中洗掉。
我可以簡單地忽略紅色三角形,但我不太喜歡這個解決方案,因為它看起來總是在作業表上有一個錯誤,當我們里面有很多資料時,很難將這個問題與其他問題區分開來.
有不同的解決方法嗎?
謝謝
uj5u.com熱心網友回復:
只有公式可以使用:
=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<>""))

然后隱藏列并使用驗證:

這是結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471287.html
