如何在Excel中创建下拉菜单实现7个股票数据表的双表对比?
Excel多数据表联动切换与下拉联动解决方案
一、切换展示并排的Current Week & Net Position数据表
步骤1:规范数据源结构
将7只股票的**Current Week(CW)和Net Position(NP)**数据按统一格式整理,例如:
- 所有股票的CW数据存于
$A$1:$G$7(每行对应1只股票的周收盘价,共7行7列) - 对应股票的NP数据存于
$H$1:$N$7(与CW行一一对应,结构完全一致) - 在隐藏列(如
$Z$1:$Z$7)输入7只股票的名称列表,作为下拉选项源
步骤2:定义名称管理器
- 点击「公式」选项卡 → 「名称管理器」
- 新建名称
StockList,引用位置选择$Z$1:$Z$7(股票名称列表) - 新建名称
CurrentWeekData,引用公式:
(=INDEX($A$1:$G$7,MATCH($B$1,$Z$1:$Z$7,0),0)$B$1为下拉菜单所在单元格,可按需调整位置) - 新建名称
NetPositionData,引用公式:=INDEX($H$1:$N$7,MATCH($B$1,$Z$1:$Z$7,0),0)
步骤3:设置下拉菜单与展示区域
- 在展示区上方(如
$B$1)设置数据验证:- 「数据」选项卡 → 「数据验证」→ 允许:序列 → 来源:
=StockList
- 「数据」选项卡 → 「数据验证」→ 允许:序列 → 来源:
- 在CW展示区起始单元格(如
$D$3)输入=CurrentWeekData,Excel 365/2021会自动溢出整行数据;旧版Excel按Ctrl+Shift+Enter批量填充 - 在NP展示区起始单元格(如
$J$3)输入=NetPositionData,完成联动展示
二、EUR/GBP行下拉选股票自动显示CW&NP数据
步骤1:设置下拉菜单
在EUR行(如$B$5)和GBP行(如$B$6)分别设置数据验证,来源同样选择=StockList
步骤2:联动数据公式(Excel 365/2021推荐方案)
- EUR行CW数据起始单元格(如
$C$5)输入:
公式会自动溢出整行CW数据,无需手动拖动填充=XLOOKUP($B5,$Z$1:$Z$7,$A$1:$G$7,"",0) - EUR行NP数据起始单元格(如
$J$5)输入:=XLOOKUP($B5,$Z$1:$Z$7,$H$1:$N$7,"",0) - GBP行同理,将公式中
$B5替换为$B6即可
旧版Excel兼容方案(INDEX+MATCH组合)
- EUR行CW数据单元格
$C$5输入:
向右拖动填充至CW数据最后一列(如=INDEX($A$1:$G$7,MATCH($B5,$Z$1:$Z$7,0),COLUMN(A:A))$I$5) - EUR行NP数据单元格
$J$5输入:
向右拖动填充至NP数据最后一列(如=INDEX($H$1:$N$7,MATCH($B5,$Z$1:$Z$7,0),COLUMN(H:H)-7)$P$5)
注意事项
- 所有股票的CW、NP数据结构必须完全一致(行数、列数相同),否则公式会出现错误
- 可将数据源区域(如
$A$1:$N$7、$Z$1:$Z$7)隐藏,避免误编辑 - 若股票数量有变动,只需更新
StockList的引用范围和数据源区域即可
内容的提问来源于stack exchange,提问作者Raj Patel
相关产品推荐
相关产品推荐

