如何在Google Sheets中同时使用IMPORTRANGE、SORT与TRANSPOSE?
Google Sheets跨表导入+转置排序的解决方案
简化版组合公式
用LET函数封装重复调用的IMPORTRANGE,减少请求次数同时让逻辑更清晰:
=LET( imported, IMPORTRANGE("https://docs.google.com/spreadsheets/d/1ShnTys0k8XIjBbp7pKbMYSCN1BYOkv86GKZfPtZzvsE/edit#gid=518187900", "sheet3!A1:L1"), transposed, TRANSPOSE(imported), trimmed, TRIM(transposed), TRANSPOSE( SORT( transposed, 9 * REGEXMATCH(trimmed, "(?i)wireless"), FALSE, 7 * REGEXMATCH(trimmed, "(?i)landline"), FALSE, 5 * REGEXMATCH(trimmed, "(?i)voip"), FALSE, 3 * REGEXMATCH(trimmed, "(?i)."), FALSE ) ) )
直接嵌套版组合公式
如果不想用LET,可以直接把原公式中所有A1:L1的引用替换为IMPORTRANGE:
=TRANSPOSE( SORT( TRANSPOSE(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1ShnTys0k8XIjBbp7pKbMYSCN1BYOkv86GKZfPtZzvsE/edit#gid=518187900", "sheet3!A1:L1")), 9 * REGEXMATCH(TRANSPOSE(TRIM(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1ShnTys0k8XIjBbp7pKbMYSCN1BYOkv86GKZfPtZzvsE/edit#gid=518187900", "sheet3!A1:L1"))), "(?i)wireless"), FALSE, 7 * REGEXMATCH(TRANSPOSE(TRIM(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1ShnTys0k8XIjBbp7pKbMYSCN1BYOkv86GKZfPtZzvsE/edit#gid=518187900", "sheet3!A1:L1"))), "(?i)landline"), FALSE, 5 * REGEXMATCH(TRANSPOSE(TRIM(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1ShnTys0k8XIjBbp7pKbMYSCN1BYOkv86GKZfPtZzvsE/edit#gid=518187900", "sheet3!A1:L1"))), "(?i)voip"), FALSE, 3 * REGEXMATCH(TRANSPOSE(TRIM(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1ShnTys0k8XIjBbp7pKbMYSCN1BYOkv86GKZfPtZzvsE/edit#gid=518187900", "sheet3!A1:L1"))), "(?i)."), FALSE ) )
关键注意点
- 首次使用
IMPORTRANGE时,必须点击公式返回的提示链接,授权当前表格访问目标工作簿,否则会报错 - 排序规则完全保留原逻辑:按匹配关键词优先级(wireless > landline > voip > 其他)降序排列,不区分大小写
LET版本仅调用一次IMPORTRANGE,比直接嵌套版运行效率更高,也更容易修改维护
内容的提问来源于stack exchange,提问作者Rana Ahssan Ullah
相关产品推荐
相关产品推荐

