在Google表格中查找国家/地区名称并将标记图片返回到单元格。

时间:2017-08-02 10:42:04

标签: image google-sheets spreadsheet vlookup lookup

我希望这将是一个相对简单的是/否。我有245个国家/地区的国家/地区列表。

有什么方法可以在google工作表中使用vlookup来导入他们的相对标志?我在考虑可能使用像Wiki或http://www.theodora.com/flags/这样的资源,但不确定我是否可以使用?

以下是相关列表的链接:https://docs.google.com/spreadsheets/d/1f8q2Sat5f-H-GPvemuS2LVSHZpdCtWDj4bqPKCU_OEk/edit?usp=sharing

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

请尝试此链接: https://www.countries-ofthe-world.com/flags-of-the-world.html

步骤1.获取链接

=IMPORTXML(A1,"//@src[contains(.,'png')]")

第二步。使用图像功能

=IMAGE("https://www.countries-ofthe-world.com/"&A5)

enter image description here

答案 1 :(得分:0)

更新:

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

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

=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 比使用一些随机网站更“合适”
  • 也许更“面向未来”
    • 可用性:将来更有可能提供
    • 更新/维护:更有可能更新以包含新的国家/地区/更新的标志

但是,很大的缺点:它似乎仅限于 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,请告诉我。一定有一个)

原帖:

为了补充 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 中输入一个国家名称(例如“土耳其”或“波斯尼亚和黑塞哥维那”),它会为您的“搜索”显示一个标志