如何从SharePoint关闭工作簿中提取整张动态行数的工作表?
方法1:Power Query(推荐方案)
Power Query是最稳定的解决方案,能自动识别源工作表的已用范围,且支持一键刷新:
- 打开Excel,点击数据 > 获取数据 > 从文件 > 从工作簿
- 粘贴SharePoint文件完整链接(
https://mylink/mylink/mylink/mylink/material_requested.xlsx)并确认 - 在导航器中选择
material_requested工作表,点击加载(如需清洗数据选转换数据) - 源文件行数/列数变化时,右键数据区域选择刷新即可同步最新内容
方法2:Excel 365动态数组公式
若必须使用公式,且Excel版本为365/2021,可通过动态数组自动匹配有效范围(需源数据无全空行/列):
=LET( src, "'https://mylink/mylink/mylink/mylink/[material_requested.xlsx]material_requested'!", last_row, XLOOKUP("*", INDEX(src&"A:A",,1), ROW(INDEX(src&"A:A",,1)),,,-1), last_col, XLOOKUP("*", INDEX(src&"1:1",1,), COLUMN(INDEX(src&"1:1",1,)),,,-1), INDEX(src&"A:1",1,1):INDEX(src&"A:1",last_row,last_col) )
- 注意:公式依赖源数据的首列和首行无全空值;打开文件时需允许链接更新才能获取最新范围
方法3:定义动态名称(兼容旧版Excel)
针对Excel 2019及更早版本,可通过定义名称实现动态范围:
- 点击公式 > 定义名称,名称设为
DynamicSheetRange - 引用位置输入:
=OFFSET('https://mylink/mylink/mylink/mylink/[material_requested.xlsx]material_requested'!$A$1,0,0,COUNTA('https://mylink/mylink/mylink/mylink/[material_requested.xlsx]material_requested'!$A:$A),COUNTA('https://mylink/mylink/mylink/mylink/[material_requested.xlsx]material_requested'!$1:$1))
- 确定后,在目标单元格输入
=DynamicSheetRange即可提取范围
- 限制:
COUNTA会忽略空单元格,若源数据存在全空行/列,范围会被截断;旧版Excel需按Ctrl+Shift+Enter作为数组公式输入
内容的提问来源于stack exchange,提问作者laserhawkeye
相关产品推荐
相关产品推荐

