【发布时间】:2016-01-18 00:54:17
【问题描述】:
复杂的问题……我先解释一下,也许有更好的解决方案而不是使用迭代计算:
Image showing example (to show what I'm working with)
问题:
拥有 4,000 多个字符串,并希望将它们分类为预先确定的组(基于字符串的内容)。
每个字符串只能分配给一个组。 (即“55 加仑桶水龙头”将列在“水龙头”列下,因为它包含“水龙头”一词。)
一旦分类到一个组中,该字符串将不会被分类到任何其他组下。 (即,“55 加仑桶形水龙头”一旦被归类为“水龙头”,就不会被归类为“桶”)。
每个字符串属于哪个组并不重要,只要它被分类即可。
注意:(我几乎找到了使用迭代计算的解决方案,但不太奏效)。
解决方案:
我解决问题的方法是:
-
使用以下公式计算字符串(A 列)在工作表中重复的次数:
Formula: =COUNTIF($E$2:$IA$10000,A3)- 此公式位于 C 列中。
-
创建了一个公式,该公式将根据字符串是否包含组词(即“水龙头”、“啤酒”、“加仑”、“厨房”等)对组下的字符串进行分类......并且没有以前使用过(即C列,其中包含上面的公式)。
Formula: =IF(C3<1,IF(IFERROR(SEARCH("faucet",A3),0)>0,A3,""),"") 向下拖动 C 列中所有 4,000 个字符串以及每个单独的“组”列的公式。
这种方法的问题在于它会进行迭代计算,这会:
- 将字符串归为组(但不会将重复次数字段从 0 增加到 1)...
或
- 将“重复次数”字段从 0 增加到 1,但不会将字符串归类到“组”列下。
对如何解决迭代计算问题有何建议? (我知道它一直在来回计算,因为它是依赖的,所以必须解决 1 个“正确”的解决方案......我想知道是否有任何方法可以创建某种“块”,所以它只能计算一个方式...)
任何帮助将不胜感激!
【问题讨论】:
标签: vba excel excel-formula iteration