使用ImportXML返回两列数据,如何仅提取有效第二列?
解决ImportXML返回两列仅取第二列的问题
我明白你遇上的情况了——用importxml抓取数据时,目标元素因为包含多个子节点(其中一个是空值),导致返回了两列结果,但你只需要第二列的有效内容。这里有两个实用的解决办法:
方法1:修改XPath直接定位第二列内容
既然问题出在同一元素下的多子节点,我们可以直接在XPath里指定选取第二个子节点。把你的公式改成这样:
=IMPORTXML("http://www.runeclan.com/clan/Ultimate_Despair/members?sort_by=name&order=asc","//*[contains(@class, 'clan_rank')]/child::node()[2]")
XPath里的child::node()[2]部分,会精准选中每个clan_rank元素下的第二个子节点,直接跳过空的第一列内容。
方法2:用INDEX函数提取第二列
如果不想改动XPath,也可以借助Google Sheets的INDEX函数来提取结果中的第二列。公式如下:
=INDEX(IMPORTXML("http://www.runeclan.com/clan/Ultimate_Despair/members?sort_by=name&order=asc","//*[contains(@class, 'clan_rank')]"),,2)
这里INDEX函数的第三个参数2代表选取返回区域的第二列,不管第一列是否为空,都会直接返回你需要的有效数据。
这两种方法都能解决你的问题,选你顺手的用就行~
内容的提问来源于stack exchange,提问作者Levialhan
相关产品推荐
相关产品推荐

