VBA阵列并使用正确/错误条件进行计算

时间:2018-10-11 05:57:11

标签: arrays vba sorting

enter image description here

enter image description here

亲爱的!请帮助,我正在尝试在VBA中使用数组进行排序。  我是数组的新手,因此我实际上不知道如何启动代码。如果整个解释过于乏味,那么如果您能在这种情况下使用最佳框架,我将不胜感激。

    如图所示,我希望实现的愿望输出是 序列号,条件将显示为TRUE。
  1. 然后,程序将通过所有TRUE条件运行,并分别为我提供每个中的result($)的最大输出     描述并给我最终的输出。

1 个答案:

答案 0 :(得分:0)

您可以在不使用VBA的情况下实现以下目标:

  • 假设A:E列中的数据(根据您的屏幕截图)

  • 在G1中的位置:=COUNTA(G2:G22)-COUNTBLANK(G2:G22)

  • 放置在G2中:=IF(AND($E$2:$E$22="TRUE",COUNTIF($A$1:$A2,A2)=1),A2,"")并填写

  • 放置在H2中:=IF($G2<>"",MAX(H$1:H1)+1,"")并填写

  • 放在I2中:=MAX(IF($A$2:$A$22=A2,IF($E$2:$E$22="TRUE",IF(COUNTIF($A$1:$A2,A2)=1,$B$2:$B$22,""),""),"")),按CTRL + SHIFT + ENTER离开单元格以使其具有数组公式。复制并将其从下面的单元格粘贴到数据行的末尾

  • 放置在K2中:=IF(ROWS(K$1:K1)<$G$1,INDEX($G$2:$G$22,MATCH(ROWS(K$1:K1),$H$2:$H$22,0)),"")并填写

  • 放置在L2:=IF(ROWS(K$1:K1)<$G$1,INDEX($I$2:$I$22,MATCH(ROWS(K$1:K1),$H$2:$H$22,0)),"")并填充

这将为您提供如下图所示的结果

enter image description here

在K:L列中有通缉名单

当然,您必须将所有22行索引更改为实际数据的最后一行索引