在 Excel 的單一儲存格中建立依賴下拉列表

在 Excel 的單一儲存格中建立依賴下拉列表

我正在嘗試為一所高中建立一個依賴下拉清單。使用者將選擇儲存格 A1,按一下走廊 3(例如),然後使用者將再次按一下儲存格 A1,然後選擇房間編號 325(例如)。最終結果應該是儲存格 A1 顯示 325。我正在使用 Excel 2010。謝謝

答案1

我懷疑是否可以在同一單元格中執行此操作(第一項為 A1,第二項為同一單元格)。我自己也有類似的問題是我用來解決它的。現在,在我的一些同事用來「填寫表格」的 Excel 工作簿的第一張表格中,我有幾個相互依賴的下拉式選單:)這裡關於如何解決這個問題也是一個很好的例子。

範例表可能是您需要的

A           B
HALLWAY     ROOM
Hallway 3   353
Hallway 3   325
Hallway 1   157
Hallway 1   124
Hallway 2   234
Hallway 2   265

建立兩個下拉清單。

第一個下拉清單包含 A 列中唯一不同的值。

hallway在公式 > 名稱管理器 > 新建 > 命名> 放入=OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A$2:$A$1000))「引用:」欄位 > 關閉中建立動態命名範圍

從 A 列建立一個唯一的不同清單"=INDEX(hallway,MATCH(0,COUNTIF($A$1:A1,hallway),0))"

建立動態命名範圍以取得唯一的不同清單“公式”>“名稱管理員”>“新建”>“命名” uniqhall> 放入=OFFSET(Sheet2!$A$2, 0, 0, COUNT(IF(Sheet2!$A$2:$A$1000="", "", 1)), 1)“引用:”欄位>“關閉”

建立下拉清單>選擇工作表1>選擇儲存格D2>點選資料>資料驗證按鈕>資料驗證>允許:清單>來源:=uniqhall>確定

僅基於第一個下拉清單中選定的一個儲存格值的輔助唯一清單。

room在公式 > 名稱管理器 > 新建 > 命名> 放入=OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B$2:$B$1000))「引用:」欄位 > 關閉中建立動態命名範圍

從 B 列中建立一個唯一的不同清單 "=INDEX(room, MATCH(0, COUNTIF($B$1:B1, room)+(order<>Sheet1!$D$2), 0))"

建立動態命名範圍以取得唯一的不同清單“公式”>“名稱管理員”>“新建”>“命名” uniqroom> 放入=OFFSET(Sheet2!$B$2, 0, 0, COUNT(IF(Sheet2!$B$2:$B$1000="", "", 1)), 1)“引用:”欄位>“關閉”

建立下拉清單 > 選擇 Sheet1 > 選擇儲存格 D5 > 資料時鐘 > 資料驗證按鈕 > 資料驗證 > 允許:清單 > 來源:=uniqroom> 確定

希望這能在某種程度上解決您的問題:)

答案2

你確實不能使用同一個單元格來實現這一點。

您可以做的就是使用它旁邊的單元格。雖然看起來羅伯特·施密特的答案會起作用,但相同功能的替代方法(在我看來更簡單)是此處列出

它使用相同的想法,但只需要一個簡單的公式。從問題的描述來看,您實際上並不需要動態範圍(儘管它們很酷)。

此方法的要點是將使用者選擇排列在一個表中,第一個選擇位於左側,然後每個後續選擇都列在右側的不同列中。

例如#34 號走廊|房間 1 |房間 2 |房間 3......

然後使用名稱管理器和從選擇建立名稱工具,您可以自動將第一列中的每個走廊作為「名稱」分配給同一行中的房間。

最後,您使用按列表進行資料驗證功能來建立下拉列表,其中一個用於走廊選擇,第二個用於房間選擇。透過在第二列的資料驗證中使用簡單的 =INDIRECT 公式,可以使第二個依賴第一個。

我建議跳到評論部分,因為那裡的用戶指出您可以使用 =SUBSTITUTE 函數來處理走廊和房間值中的空間。

相關內容