Excel 用另一张工作表做数据验证列表
把项目放在例如名为 Lists 的工作表,然后在“数据 > 数据验证”中将允许条件设为序列,来源填写 =Lists!A2:A20,或指向这些单元格的命名区域。不要把表头算进源区域。若对话框拒绝工作表名,先定义命名区域,再使用 =RegionList。
本文目录
快速解答
把项目放在例如名为 Lists 的工作表,然后在“数据 > 数据验证”中将允许条件设为序列,来源填写 =Lists!A2:A20,或指向这些单元格的命名区域。不要把表头算进源区域。若对话框拒绝工作表名,先定义命名区域,再使用 =RegionList。
=Lists!A2:A20检查要点
工作表名若含空格或标点,要用单引号,例如 ='Item lists'!A2:A20。Google Sheets 的下拉范围同样接受其他标签页。定义名称 RegionList 指向 =Lists!$A$2:$A$20 后,源中填写 =RegionList,不要加引号,也不要在名称前加工作表名。
边界与兼容性
可用 =COUNTIF(Lists!A2:A20,B2) 或 =COUNTIF(RegionList,B2) 检查成员。2026 年 11 月 12 日测试中,East 为 1,South 为 0。若看起来相同却得到 0,多半是空格或拼写,而不是跨表引用失败。依赖其他单元格而变化的列表是另一步,应先让固定的跨表列表工作。
完整英文示例、公式与作者备注
Excel How-toTested in: The
COUNTIFmembership checks below were evaluated in Google Sheets on 12 November 2026. Excel 365 menu names are the current desktop labels; I did not click through Data Validation or Name Manager in Excel this session.
Creating a list on the same sheet is in How to Add a Drop-Down List in Excel. If the arrow is missing or the list is blank, see drop-down list not working. This page is only about pointing the source at another sheet.
Point the Source box at the other sheet
On the Lists sheet, keep a single header in row 1 and the items in A2 down. On the sheet where people type, select the input cells and open Data > Data Validation:
- Set Allow to List.
- In Source, enter:
=Lists!A2:A20
- Leave In-cell dropdown checked, and click OK.
In Google Sheets the same reference works in the Criteria (dropdown from a range) box, including a range on another tab. If the sheet name has a space or punctuation, wrap it in single quotes: ='Item lists'!A2:A20.
Do not include the header. =Lists!A1:A20 puts “Region” (or a blank, if A1 is empty) at the top of the drop-down.
Use a named range when the dialog refuses a sheet reference
Some older Excel builds will not accept =Lists!A2:A20 in the Source box. A named range works around that and is easier to reuse on several input sheets:
- Select
Lists!A2:A20(items only). - Open Formulas > Define Name (or Name Manager > New).
- Name it
RegionList. The refers-to box should read=Lists!$A$2:$A$20. - On the input sheet, set the validation source to
=RegionList— no quotes, and no sheet name in front of the name.
If you later insert rows inside that range, the name expands with them. If you type new items below A20, either widen the name or convert the list to a table and point the name at the table column (=Lists[[#All],[Region]] is usually the wrong form here because it can pull the header; a structured reference that starts at the data column, or a range one row below the header, is safer).
Check that the list actually contains the value
After the drop-down is in place, confirm membership from the input sheet:
=COUNTIF(Lists!A2:A20,B2)
or, with the named range:
=COUNTIF(RegionList,B2)
A result of 1 means B2 is in the list; 0 means it is not. In the test workbook, =COUNTIF({"East";"West";"North"},"East") returned 1 and the same check for "South" returned 0. If you see 0 for a value that “looks” like a list item, the usual causes are a trailing space, a different spelling, or pointing COUNTIF at the wrong column — not a failure of the cross-sheet reference itself.
What this is not
A drop-down whose items change when someone picks a category in another cell is a dependent drop-down. That setup still often stores each category list on another sheet, but the Source box uses INDIRECT (or a FILTER) to pick which list. Get the simple =Lists!A2:A20 form working first, then add the dependent layer.
A list in another workbook is a different problem again. Excel can be picky about validation sources that point at a closed file; keep the list in the same workbook when you can.
Once Source accepts the other sheet and COUNTIF returns 1 for a known item, the cross-sheet list is doing its job. Any remaining “will not appear” symptoms belong on the troubleshooting page.