我有成千上万行csv格式的非结构化数据。我需要从一长串文本中提取某些产品属性。给定一组可接受的属性,如果有匹配项,我需要它用匹配项填写单元格。
示例数据:
“ [ROOT];耳环;品牌;品牌> JeweleryExchange;耳环>性别;耳环;宝石>耳环;耳环>金属;耳环>场合>耳环;耳环>款式;耳环>性别>女士>耳环;耳环>宝石>锆石;耳环;白色黄金;耳环>场合>只是要说:我爱你;耳环>样式>垂坠/垂坠;耳环>样式>时尚;不可见;礼物;礼物>价格> $ 500-$ 1000;礼物>商店>耳环;礼物>场合; Gifts>场合>圣诞节; Gifts>场合>只是说:我爱你;礼物> For>她”
查找值表:
锆石,钻石,珍珠,红宝石
输出:
锆石
我尝试使用VLOOKUP()函数,但它需要匹配整个单元格,并且在翻译首字母缩略词时效果更好。尚未真正找到满足我需要的内置函数。数据完全是非结构化的,即使在同一产品的变体中,行与行之间的更改也没有一致性。有谁知道如何做到这一点?或者如何编写一个OpenOffice Calc函数来完成此任务?如果有人对如何执行此操作有任何经验或想法,也可以采用其他更好的方法进行操作...
答案 0 :(得分:0)
好的,所以我想出了自己的方法...我创建了许多不同的列,每个列都有我想提取为标题的关键字。 Spreadsheet solution for structured data extraction 然后,我使用此公式将关键字提取到列标题下方的正确行中。 = IF(ISERROR(SEARCH(CF $ 1,$ D769)),“”,CF $ 1)Search函数返回搜索字符串位置的数字值,否则会产生错误。我使用iserror函数来确定是否存在错误情况,并使用if语句来确定是否存在错误,它将单元格留空,否则将使用标头的值。提取了100列以上的特定信息,并将其提取到最后一列中,在该列中,我将该行中的所有先前单元格合并在一起以生成最终列表。像魅力一样工作。将这种方法推荐给必须执行类似任务的任何人。