【问题标题】:Is there a way to extract a substring from a cell in OpenOffice Calc?有没有办法从 OpenOffice Calc 中的单元格中提取子字符串?
【发布时间】:2020-09-25 16:58:43
【问题描述】:

我有数万行 csv 格式的非结构化数据。我需要从一长串文本中提取某些产品属性。给定一组可接受的属性,如果有匹配项,我需要它用匹配项填充单元格。

示例数据:
“[ROOT];耳环;品牌;品牌>珠宝交换;耳环>性别;耳环>宝石;耳环>金属;耳环>场合;耳环>款式;耳环>性别>女士;耳环>宝石>锆石;耳环>金属>白色金;耳环>场合>只是说:我爱你;耳环>款式>吊坠/吊坠;耳环>款式>时尚;不可见;礼物;礼物>价格>$500 - $1000;礼物>商店>耳环;礼物>场合;礼物>场合>圣诞节;礼物>场合>只是说:我爱你;礼物>送给>她”

查找值表:
锆石、钻石、珍珠、红宝石

输出:
锆石

我尝试使用 VLOOKUP() 函数,但它需要匹配整个单元格并且更适合翻译首字母缩略词。还没有真正找到完成我需要的内置函数。数据完全是非结构化的,即使在同一产品的变体中,数据也会随着行的变化而不一致。有谁知道如何做到这一点?或者如何编写一个 OpenOffice Calc 函数来完成这个?如果有人对如何解决这个问题有任何经验或想法,也可以接受其他更好的方法......

【问题讨论】:

  • 一些问题:(1)您所说的“用匹配项填写单元格”是什么意思 - 是否应该返回从[ROOT]Gifts>For>Her 的完整字符串? (2) 条目如何用换行符分隔? (3) 需要哪种输出格式?
  • @tohuwawohu 上面是实际数据......那是一行。输出为 csv 格式

标签: text-extraction openoffice-calc


【解决方案1】:

好的,所以我自己想出了如何做到这一点...我创建了许多不同的列,每个列都有一个我希望提取为标题的关键字。 Spreadsheet solution for structured data extraction 然后我使用这个公式将关键字提取到列标题下方的正确行中。 =IF(ISERROR(SEARCH(CF$1,$D769)),"",CF$1) 搜索函数返回搜索字符串位置的数值,否则会产生错误。我使用 iserror 函数来确定是否存在错误条件,并且 if 语句的方式是,如果有错误,它将单元格留空,否则它采用标题的值。有超过 100 列的特定信息要提取到最后一列,我将行中所有先前的单元格连接在一起作为最终列表。像魅力一样工作。向必须执行类似任务的任何人推荐这种方法。

【讨论】:

    猜你喜欢
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2015-12-21
    • 2022-01-14
    • 1970-01-01
    • 2020-04-17
    • 2022-12-11
    相关资源
    最近更新 更多