2013-03-04 65 views
5

我試過搜索,但可能只是沒有找到關鍵詞的正確組合,並且一直無法找到解決方案。Excel數據驗證源

我想在Excel中做什麼是基於在另一個單元格中輸入的鍵值生成一個動態驗證列表。

我有3個工作表:WSName(列)

  1. 日誌(建築物,樓層)
  2. 建築物(BuildingId,BuildingName)
  3. 地面(FloorId,BuildingId,FloorName)

我爲我的所有建築ID創建了一個名爲範圍,名爲「BuildingIds」

我已經創建了s所有樓層的所有樓層名爲「Floor#BuildingId#」

我想要的是,當在日誌工作表中選擇建築物時,樓層列表將從樓層的可用樓層動態填充工作表。

我的想法是在數據驗證源我應該能夠做到這一點:

=INDIRECT("Floors"&$A$2) 

而且這部分工作,但總是返回相同的樓層列表,因爲$ A $ 2取決於是不是動態將它放入行中,所以我需要$ A $ 2來使用當前行中的值。

這將返回我想當前行所選建築的價值:

=INDIRECT("A"&ROW()) 

但是當我嘗試:

=INDIRECT(CONCATENATE("Floor","A"&ROW())) 

OR

=CONCATENATE("Floor",INDIRECT("A"&ROW())) 

我得到一個錯誤。

你能幫我解決這個問題嗎?!提前致謝!

回答

2

您使用不正確的語法 - 這是鏈接如何手動樣子:

='Sheet 1'!A1 

添加感嘆號和',即可大功告成。剩下的似乎是爲我好)

+0

感謝彼得,但我很困惑如何連接與「樓」? = CONCATENATE(「Floor」,'Sheet 1'!A1) – 2013-03-04 17:27:05

+0

@JohnSadler它是一個樣本朋友)您不需要它爲您的解決方案 - 使用「地板!「作爲參數,當表單中有名稱空格時需要使用'''''' – 2013-03-04 17:30:35

+0

好的,也許我沒有清楚地解釋自己,樓層工作表中有多個命名範圍,每個樓層有一個命名範圍,分別命名爲」樓層「&BuildingId。在我的數據驗證源的日誌工作表中,我需要公式爲」Floor「&(該行所選的建築物ID)。引用了我的Floor工作表,但並不知道它如何引用該工作表中的特定命名範圍 – 2013-03-04 17:35:44

1

好吧,我得到這個工作,我簡單的數據驗證源到:

=INDIRECT(CONCATENATE("Floors",A2)) 

然後,當公式複製整列,在A2更新到預期的當前行。

@Peter L.感謝您的幫助!

+0

很高興幫助好友)最好的方式在這裏說謝謝 - 是upvote /接受答案:[接受答案:它是如何工作的?](http:// meta .stackexchange.com /一個/210367分之5235) – 2013-03-04 18:38:09