如何在 Excel VBA 中进行排名和筛选?

How to rank and filter in Excel VBA?

我是 VBA 的新手,每个月我都会提取一个包含 5000 个公司评级的数据集。我已经设法将数据转换为以下格式。我需要做的是为每家公司制作一个 'rating'。

例如,我有'Market Weight'、'Underweight'和'Overweight'。如果公司有任何市场权重评级,那么我想将其用于整体评级,但如果没有,则减持,如果没有,则增持。

问题是每家公司都由一个代码代表,有多个评级,而我只想取一个。所以在下图中,以 ARNC 为例,我们最终应该得到一个评级作为 ARNC 的市场权重。对于 BBDBCN,应该减持,因为目前没有任何市场权重。

Link to the picture

为了解决您的问题,我添加了一个权重列和一个帮助程序 table 来解决您的问题

下面找一张截图

您可以使用以下公式

公式如下

Cell C2: =VLOOKUP(B2,$E:$F,2,0)
Cell I2: =MAX(IF($A:$A=H2,$C:$C))
Cell J2: =INDEX($E:$E,MATCH(I2,$F:$F,0))

Formula is Cell I2是数组公式,输入或编辑后必须按Ctrl+Shift+Enter