如何查找活动电子表格中IMPORTRANGE函数的数据源连接及使用次数?
统计IMPORTRANGE使用次数及提取数据源的公式方案
一、统计全表IMPORTRANGE总使用次数
针对Google Sheets,可通过跨工作表遍历的公式直接统计:
=SUMPRODUCT(COUNTIF(INDIRECT("'"&TRANSPOSE(GET_WORKSPACE_KEYS())&"'!A:ZZ"),"*IMPORTRANGE*"))
GET_WORKSPACE_KEYS()会返回当前表格所有工作表名称的数组;INDIRECT配合它可遍历所有工作表的A:ZZ区域(可根据实际使用范围缩小,比如A1:Z1000提升性能);COUNTIF统计每个工作表含IMPORTRANGE的单元格数,SUMPRODUCT汇总总数。
如果你的表格版本不支持GET_WORKSPACE_KEYS(),换用以下公式:
=SUMPRODUCT(COUNTIF(INDIRECT("'"&INDEX(SHEETS(),ROW(INDIRECT("1:"&SHEETS())))&"'!A:ZZ"),"*IMPORTRANGE*"))
二、提取所有IMPORTRANGE的数据源连接
要获取所有被引用的目标表格ID/URL,用以下公式提取唯一数据源:
=UNIQUE(TRIM(REGEXEXTRACT(TEXTJOIN(" ",TRUE,ARRAYFORMULA(TEXT(INDIRECT("'"&TRANSPOSE(GET_WORKSPACE_KEYS())&"'!A:ZZ"),"@"))),"(?<=IMPORTRANGE\(""[^""]*"",).*?(?="")")))
TEXTJOIN将所有工作表的单元格内容合并成文本串;REGEXEXTRACT通过正则匹配提取IMPORTRANGE第一个参数(即数据源ID/URL);UNIQUE去重,保留唯一的数据源连接;若需要保留所有重复项,去掉UNIQUE()即可。
注意事项
- 以上公式仅适用于Google Sheets,Excel无原生跨工作表遍历的公式,需借助VBA实现;
- 工作表数量多或数据范围大时,计算速度会变慢,建议缩小遍历的单元格区域。
内容的提问来源于stack exchange,提问作者Amir Farrokhnezhad
相关产品推荐
相关产品推荐

