Excel 中是否有内置函数或者我应该使用 vba?

Excel 中是否有内置函数或者我应该使用 vba?

我的问题是 Excel 中是否有任何函数可以解决我的问题,或者我是否应该采用编程方法。

我有一张包含两列的 Excel 表。这些列表示行上项目之间的关系。我们可以称之为左右关系。它分布在许多行上,但我想将其布局在一行中,并包含多列。

如果我得到了以下行:

123  -- 123A

123B -- 123A

123C -- 123B

我想创建一个如下所示的表格:

123A -- 123 -- 123B --123C

123 与 123B 没有直接关系这一事实无关紧要,因为它们都与 123A 相关。

是否有我可以使用的任何内置函数,或者我应该使用 vba 来解决这个问题?

答案1

我不知道有任何内置函数可以完成这项工作。挑战在于您可以拥有任意数量的相关项目,而公式语言无法处理您事先不知道最大项目数的情况。

在类似情况下,我曾使用 VBA 函数将自定义类的对象存储在 Collections 中。自定义类可以保存行号和项目的文本。

这个特定问题是从项目对中确定“等价类”。输出的每一行都是一个等价类。 本第 3 节,是一个参考,但我找不到现成的代码示例。我知道它是在 Knuth 中,但一切都是 :)。

相关内容