含多条件的ARRAYFORMULA+VLOOKUP+REGEXEXTRACT组合公式为何失效?
Google Drive图片链接转换公式修复
我需要把Google Drive公开图片链接从:https://drive.google.com/file/d/1-gnl6ODS5sinOPsd0fcvszbA-bduNE2I/view?usp=sharing
转换成可直接嵌入的格式:https://drive.google.com/uc?export=view&id=1-gnl6ODS5sinOPsd0fcvszbA-bduNE2I
自己写的公式没法正常工作:
=ARRAYFORMULA(IF(A3:A="",,Image("https://drive.google.com/uc?export=view&id="®exextract(VLOOKUP($J$3:$J&" "&$N1:$N$1, QUERY({ IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Image Link!A1:A")&" "& IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Image Link!C1:C"), IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Image Link!F1:F")}, "select Col1,Col3"), 2, 0)),"d/(.+)/view")))
问题出在哪
REGEXEXTRACT位置错了:应该先通过VLOOKUP拿到原始Drive链接,再从中提取ID,你现在的顺序搞反了QUERY列索引错误:你选了Col1和Col3,但原始链接在Col2,导致VLOOKUP返回的不是你要的链接- 维度不匹配:
N1:N1是单行,和J3:J的多行拼接后,VLOOKUP没法正确匹配数据
修正后的公式
=ARRAYFORMULA(IF(A3:A="",,IMAGE("https://drive.google.com/uc?export=view&id="®EXEXTRACT(VLOOKUP($J3:$J&" "&$N3:$N, QUERY({IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Image Link!A:A")&" "&IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Image Link!C:C"), IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Image Link!F:F")}, "select Col1, Col2"), 2, 0), "d/([^/]+)/view"))))
关键调整
- 把
QUERY里的Col3改成Col2,确保VLOOKUP返回的是原始Drive链接 - 调整
REGEXEXTRACT的正则为d/([^/]+)/view,精准提取ID,避免匹配多余字符 - 把
N1:N1改成N3:N,和J3:J维度统一,保证匹配正常 - 修正了函数嵌套顺序,先拿链接再提取ID,最后拼接成IMAGE可用的URL
内容的提问来源于stack exchange,提问作者onit
相关产品推荐
相关产品推荐

