你好;
我有一张有4列的床单;
A列和C列具有产品编号
B和D列用于详细说明产品。
我想做的是 如果A列中的数字与C列中的数字匹配,那么我想将B的值(产品详细信息)带到E列。但是如果该数字重复,则在第二行中再次与C列中的数字匹配,那么我希望将新值添加到F列。
对我们来说,这是一个非常特殊的问题。我们试图为我们的新网页创建一个新的sql数据库,并且我们必须像这样转换所有数据。
我在Excel中使用= vlookup公式尝试了此操作,但没有成功。我认为这个问题只能用宏解决。(如果我没看错...)
PS_请检查图片,用我的母语很难解释。
谢谢
如果您的数据行少于2000-3000,则可以使用一些数组公式来完成。如果您还不止如此,那么VBA解决方案将更适合。这些数组公式所引用的范围越大,它们就成倍地消耗计算负载。在某些时候,这根本不值得等待,VBA解决方案会更好。
所述阵列式在F2是,
=IF(LEN(F1), IFERROR(INDEX(A$1:A$999, MATCH(0, IF(LEN(A$1:A$999), COUNTIF(F$1:F1, A$1:A$999&""), 1), 0)), IFERROR(INDEX(C$1:C$999, MATCH(0, IF(LEN(C$1:C$999), COUNTIF(F$1:F1, C$1:C$999&""), 1), 0)), "")), "")
请注意,这需要F1中的标题列标签。它不能被放入F1。数组公式需要用Ctrl+ Shift+结束Enter↵。正确输入后,填写下来以获取A列和C列中所有零件号的唯一列表。
G2中的数组公式为
=IF(LEN($F2), IFERROR(INDEX($B$1:$B$999, MATCH(0, IF($A$1:$A$999=$F2, COUNTIF($F2:F2, $B$1:$B$999&""), 1), 0)), IFERROR(INDEX($D$1:$D$999, MATCH(0, IF($C$1:$C$999=$F2, COUNTIF($F2:F2, $D$1:$D$999&""), 1), 0)), "")), "")
这也需要用Ctrl+ Shift+完成Enter↵。正确输入后,在几列中右填充,然后向下填充所有公式以匹配在F列中检索到的条目。
我已将这些公式保留为999行。如果您的需求超出该范围,则可能需要向上调整。搜寻$ 999并以$ 1999取代就能快速达成目标。
这就是全部。出于同样的原因,请确保在底部保留几行,以防另一个文件在右边具有更多行和几列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句