【发布时间】:2016-04-18 07:53:58
【问题描述】:
我是编码新手,我必须处理一个大约有 40,000 行和 50 列的 Excel 文档。我删除了大约 35 个列,这些列的规范对我来说并不重要。
在前 14 列中有定义不同产品的值。这些定义可以是作为产品功率或序列号规范的数字,也可以是作为产品名称或产地规范的字母。 我已经使用个性化过滤器对我的所有列进行了排序,首先根据第 1 列排序,然后按照第 2 列排序,依此类推... 第 15 列中的日期表示产品首次发布的日期。
我想要做的是比较每行中的所有前 14 列,并且只得到最先启动的那一列。由于我删除了 35 列,所以很多产品是相同的(它们在其他列中的规格不同)。 如果列中的值不匹配,我尝试记录宏或使用第 16 列中的公式返回一个值,但它总是与第一个值(第一行)进行比较,我似乎没有得到任何结果。
有人介意给我一些关于如何到达那里的提示吗?
非常感谢您的帮助(如果有任何英文错误,请见谅)
【问题讨论】:
-
如果我理解正确,决定什么产品属于同一“类别”的条件是前 14 列中的匹配值。然后我会建议一个宏,它将通过 14 列的每个可能组合逐步过滤列表,按日期排序(升序),然后选择最上面的日期。但是你将不得不编写这样的宏。没有办法记录它。但是,录制可以帮助您进行基本操作
-
是的,就是这样,如果前 14 个类别的值相同,那么我比较日期并只选择最古老的一个。好的,我将通过记录一个示例来尝试一个宏,并首先尝试 filterig,然后选择最古老的日期。谢谢
-
我使用 IF(AND(...)) 混合了 VBA 和公式,并根据列是否匹配来呈现 1 或 0 的值。我认为它现在可以工作了 :)
-
完美,不客气。您可以发布问题的答案,以便对有类似问题的人有用。
标签: vba compare match return-value formulas