@DasalKalubowila,這裏是@ KresimirL的答案,可能是你要找的修改。
首先,爲您的輸入數據創建一個定義的名稱。通過在功能區上轉到公式,然後單擊名稱管理器在Defined Names組下。
在我的例子中,我調用了輸入數據範圍InputData。所用式I是
=Sheet1!$A$2:INDEX(Sheet1!$A$2:$A$501,MATCH("Ω",Sheet1!$A$2:$A$501))
其中
Sheet1
是工作表,其中輸入數據的生活,
$A$2
是在輸入包含數據的第一單元的名稱範圍(我稱之爲主播),
$A$2:$A$501
是您的數據所在的列的最大面積,可能會在未來生活,並且
"Ω"
是歐米茄字母。您可以通過按住ALT 和按下得到這個然後然後在10鍵數字鍵盤(也可以在字符映射應用程序在Windows中找到)。
該公式可根據存在多少條目有效地增加或縮小數據範圍。
接下來,您需要創建一個幫助列。我知道這不是我們想要的,但它將是唯一/更好的方式之一。我將我的作業放在與我的輸入數據相同的工作表上,但您不必這樣做。我在E2
使用的公式是
=IFERROR(INDEX(InputData,MATCH(0,COUNTIF($E$1:$E1,InputData),0)),"")
您需要與按Ctrl +移+輸入作爲它是一個數組公式犯此。然後將該公式向下拖到您的位置。你基本上想要減少許多行,你認爲你會有獨特的條目。
然後我需要創造一個更明確的名字,這就是即將在我數據驗證在接下來的步驟中使用。我將這個新定義的名稱叫做ValidationList(這需要將範圍限定在工作簿中)。我用ValidationList其計算公式爲
=Sheet1!$E$2:INDEX(Sheet1!$E$2:$E$501,COUNTIF(Sheet1!$E$2:$E$501,">*"))
查看筆記InputData上述理解這個公式更好。唯一的區別是,該公式使用COUNTIF
而不是MATCH
。這是因爲如果你的獨特的價值還沒有填滿整個範圍,你在Column E
(上一步)中拖動你的公式,使用MATCH
以同樣的方式之前最終會抓住一大堆我們不知道的空白想。 COUNTIF
因此只計算那些包含大於「*」值的單元格,其中星號是任何字符的通配符(並且「」不包含字符,因此不包括那些項目)。
現在,創建自己的數據驗證,並設置它像這樣:
現在你應該離開這個:
而當你的信息添加到您的InputData區,您的範圍驗證列表應擴展爲包含最新的唯一身份證件,而這些唯一身份證件又將填充到您的數據驗證區域,lik e例如:
我發現這似乎並沒有減慢我的工作簿過於顯着,但我會有興趣聽到它如何在您的表現。
我不確定是否有任何方法可以在無輔助列的情況下完成此操作。數據驗證(無論如何用於下拉列表)本質上是非智能的。它只允許你輸入一系列單元格 - 不允許公式。 – ImaginaryHuman072889
謝謝。因此,我認爲我最好的選擇是在新記錄進入時用宏創建一個不同的單列表格。然後讓數據驗證列表範圍成爲上述表格。但這並不理想,因爲用戶在添加到表A時必須單擊按鈕,並且人們無法處理這些類型的說明。 –
我同意需要幫手列。如果你想避免VBA,可能可以用公式來完成。 – ImaginaryHuman072889