查找国家名称和 return 将图像标记到 Google 表格中的单元格

lookup country name and return flag image to cell in Google Sheets

我的国家 list 有 245 个国家。

有什么方法可以在 Google 工作表中使用 VLOOKUP 来导入它们各自的标志?

我正在考虑可能使用 Wiki 或 http://www.theodora.com/flags/ 等资源,但不确定是否可以?

第 1 步。获取链接

A1 = http://www.sciencekids.co.nz/pictures/flags.html

B1 = //@src[contains(.,'flags96')]

A3 = =IMPORTXML(A1,B1)

第二步。使用图像函数

B3 = =IMAGE(substitute(A3,"..","http://www.sciencekids.co.nz"))

奖金。国名:

C1 = ([^/.]+)\.jpg$

C3 = =REGEXEXTRACT(A3,C1)

更新:

写完这篇文章并进行了一些好奇的谷歌搜索后,我发现了以下 APIs:

这让我可以创建这个单行公式:

=IMAGE(CONCATENATE("https://www.countryflags.io/", REGEXEXTRACT(INDEX(IMPORTDATA(CONCAT("https://restcountries.eu/rest/v2/name/", F3)), 1, 3),"""(\w{2})"""), "/flat/64.png"))

(如果有人知道在 Google 表格中导入和解析 json 的更好方法 - 让我知道)

由于这些是官方的 API 而不是“sciencekids.co.nz”,因此 理论上 会提供以下好处:

  • 使用专门构建的 API 比一些随机网站
  • 更“合适”
  • 也许更“面向未来”
    • 可用性:将来更有可能可用
    • Updated/maintenance:更有可能更新为包含新的 countries/updated 标志

但是,很大的缺点:它似乎仅限于 64 像素宽的图像(即使是最初发布的“sciencekids”解决方案也提供了 96 像素宽的图像)。所以如果你想要更高质量的图像,你可以将原始公式调整为:

=IMAGE(SUBSTITUTE(SUBSTITUTE(QUERY(IMPORTXML("http://www.sciencekids.co.nz/pictures/flags.html","//@src[contains(.,'flags96')]"),CONCATENATE("SELECT Col1 WHERE Col1 CONTAINS '/", SUBSTITUTE(SUBSTITUTE(A1, " ", "_"), "&", "and") ,".jpg'")),"..","http://www.sciencekids.co.nz"), "flags96", "flags680"))

在“sciencekids.co.nz”站点上提供 680 像素宽的图像。 (如果有人找到 API 可以提供更高质量的图像,请告诉我。一定有一个)

原文Post:

为了补充 Max 的精彩回答,以下是一个函数中的全部内容:

=IMAGE(SUBSTITUTE(QUERY(IMPORTXML("http://www.sciencekids.co.nz/pictures/flags.html","//@src[contains(.,'flags96')]"),CONCATENATE("SELECT Col1 WHERE Col1 CONTAINS '/", SUBSTITUTE(SUBSTITUTE(A1, " ", "_"), "&", "and") ,".jpg'")),"..","http://www.sciencekids.co.nz"))

(如果有人想稍微简化一下,请成为我的客人)

将这个放在 A2 中,然后将国家名称放在 A1 中(例如“土耳其”或“波斯尼亚和黑塞哥维那”),它会为您的“搜索”显示一面旗帜