使用 Excel 到 Return 相同查找值的唯一值
Using Excel to to Return unique values for Identical lookup values
我正在尝试使用 VLookup 将“采购编号”与特定的“发票编号”相匹配。为实现这一点,我有几个关于购买的标识符,我将它们放在一起以得出一个特殊的“Concat ID”。然后我有一个发票编号列表,它也有相同的标识符列表来创建相同的“Concat ID”。
我遇到的问题 运行 是标识符集不是唯一的(也就是购买 10 台计算机一年可能发生多次,因此它多次出现在我的列表中)。因此,当我使用 Vlookup 来匹配 2 个 ID 时,每次找到 Concat ID(这只是该 Concat ID 的第一次出现)时,它总是给我相同的购买编号。
由于没有其他数据可以匹配(因为发票日期和购买日期并不总是相同的日期甚至彼此接近),我只是想确保每个发票编号都有一个唯一的购买编号.
我不确定它是否可能,但我希望我能够执行 vlookup 然后跳到下一次找到 Concat ID,不允许重复,但这还没有对我来说可行。因为这是一个 16000 行的文件,所以非常感谢任何见解。
我敢肯定这不是最清楚的解释,所以我附上了这 2 个示例的屏幕截图,以防有人有任何见解。我一直在使用简单的 VLookup,但我愿意尝试 VBA 或每个人都有的任何其他建议。一如既往,提前感谢 Stack 社区的任何 help/insight!
购买信息
尝试与发票信息匹配
我有一个非常笨拙的解决方案,但也许它会有所帮助。
使用此公式为每一行创建一个唯一的 ID。它将计算特定 Concat ID
之前在 table 中使用了多少次,然后将其附加到末尾。您可以在 VLookup
中使用 Concat ID Unique
以获得正确的 Purchase Number
.
=D2 & "_" & (COUNTIF(D:D1, "=" & D2))
我仍然不确定您希望如何处理 ConcatID 购买编号,但是 return 与您的特定 ConcatID 相匹配的购买编号,按照您在问题中描述的方式生成,并且 "skipping to the next" 在 ConcatID 相同的情况下,您可以执行以下操作;
- 请注意,我根据您的原始数据制作了 Table,并且使用的是结构化引用。与引用整个列相比,这允许处理的数据量要少得多,并且还会在 add/remove 行
时自动调整范围
- 另请注意,如果您的 Table 从第 1 行以外的行开始,您将需要对公式进行调整以说明这一点。
G2: =INDEX(PurchaseTbl[#All],AGGREGATE(15,6,1/1/(PurchaseTbl[Concat ID]=F2)*ROW(PurchaseTbl),COUNTIF($F:F2,F2)),7)
并根据需要向下填写
我正在尝试使用 VLookup 将“采购编号”与特定的“发票编号”相匹配。为实现这一点,我有几个关于购买的标识符,我将它们放在一起以得出一个特殊的“Concat ID”。然后我有一个发票编号列表,它也有相同的标识符列表来创建相同的“Concat ID”。
我遇到的问题 运行 是标识符集不是唯一的(也就是购买 10 台计算机一年可能发生多次,因此它多次出现在我的列表中)。因此,当我使用 Vlookup 来匹配 2 个 ID 时,每次找到 Concat ID(这只是该 Concat ID 的第一次出现)时,它总是给我相同的购买编号。
由于没有其他数据可以匹配(因为发票日期和购买日期并不总是相同的日期甚至彼此接近),我只是想确保每个发票编号都有一个唯一的购买编号.
我不确定它是否可能,但我希望我能够执行 vlookup 然后跳到下一次找到 Concat ID,不允许重复,但这还没有对我来说可行。因为这是一个 16000 行的文件,所以非常感谢任何见解。
我敢肯定这不是最清楚的解释,所以我附上了这 2 个示例的屏幕截图,以防有人有任何见解。我一直在使用简单的 VLookup,但我愿意尝试 VBA 或每个人都有的任何其他建议。一如既往,提前感谢 Stack 社区的任何 help/insight!
购买信息
尝试与发票信息匹配
我有一个非常笨拙的解决方案,但也许它会有所帮助。
使用此公式为每一行创建一个唯一的 ID。它将计算特定 Concat ID
之前在 table 中使用了多少次,然后将其附加到末尾。您可以在 VLookup
中使用 Concat ID Unique
以获得正确的 Purchase Number
.
=D2 & "_" & (COUNTIF(D:D1, "=" & D2))
我仍然不确定您希望如何处理 ConcatID 购买编号,但是 return 与您的特定 ConcatID 相匹配的购买编号,按照您在问题中描述的方式生成,并且 "skipping to the next" 在 ConcatID 相同的情况下,您可以执行以下操作;
- 请注意,我根据您的原始数据制作了 Table,并且使用的是结构化引用。与引用整个列相比,这允许处理的数据量要少得多,并且还会在 add/remove 行 时自动调整范围
- 另请注意,如果您的 Table 从第 1 行以外的行开始,您将需要对公式进行调整以说明这一点。
G2: =INDEX(PurchaseTbl[#All],AGGREGATE(15,6,1/1/(PurchaseTbl[Concat ID]=F2)*ROW(PurchaseTbl),COUNTIF($F:F2,F2)),7)
并根据需要向下填写