【问题标题】:Pull SubString (in Array) from Cell and Parse into Column从单元格中拉取子字符串(在数组中)并解析到列中
【发布时间】:2014-05-23 06:47:01
【问题描述】:

我有一个要从较大字符串中解析的字符串列表,例如,在:

“橱柜;门;桦木;染色”---> [这是部分命名法。可能有也可能没有分隔符]-

我想遍历一个零件列表并解析出某些字符串,例如在数组中:

D1:门

D2:货架

D3:基地 ;

Etc, Etc--- 并将其放入新列。所以会发生这种情况:

橱柜、门、桦木、染色 ----> 门(在新列中)

橱柜,搁板,桦木,染色 ----> 搁板(与上列同列)

柜子,底座,桦木,染色---->底座(在同一列中)

基本上,这是为了解析并更轻松地分配通用分类法 - 它遍历一个单元格,在该数组中查找一个值(D1:D10,等等) - 然后将其拆分。

谢谢!

【问题讨论】:

  • 它是否需要匹配数组中的两个或多个值?
  • 有可能,但不太可能(我知道这是一个糟糕的答案。)返回它在数组中遇到的第一个字符串不一定有问题;我怀疑这不是一个足够大的问题,无法一一解决。 - 所以如果它确实说像“橱柜,货架底座,桦木,染色”,可以返回“货架”而不是“底座”,“货架”
  • “可能有也可能没有分隔符”是什么意思?这是否意味着可能会有类似“柜架底座桦木染色”之类的东西,只有空格?如果是这样,你怎么知道其中两个词是否属于同一个“值”,比如“货架基地”?
  • 只是因为我们将设计要解析的值数组,例如不是这种情况-“值”是“货架基数”,我们很高兴得到"Shelf" 或 "base-" 如果它返回它在字符串中找到的第一个值,完全可以接受

标签: excel vba split substring


【解决方案1】:

我认为你可以使用这样的东西:

=INDEX($D$1:$D$10;MATCH(1;1*ISNUMBER(FIND($D$1:$D$10;G1));0))

G1 中的单元格值

这是一个数组公式,需要 Ctrl Shift Enter 才能输入。

将公式复制下来以供所有其他人使用

根据您的区域设置,您可能需要替换“;”由“,”

【讨论】:

  • 是的,完全正确。非常感谢 - 这节省了大量时间。我没有想过嵌套一个isnumber。你真棒!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
  • 2019-09-15
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
相关资源
最近更新 更多