对于以下VBA宏问题,我将不胜感激, 截图:
我必须将两列中的数据进行比较 - Index& Sec_Index。在匹配的情况下,它应该检查哪些值被分配给Sec_Index并且将“1”填充到对应于索引的匹配值列,并且对于其他值列填充“0”(我希望截图更好地解释它)
我写了一个很好的短宏。但是我有大量数据 - 两个索引列都包含至少400000-500000行。这使我的代码无用,因为执行它需要很长的持续时间。
有没有办法让这项工作?我读到了Variant数组,但我对它们并不熟悉。
答案 0 :(得分:1)
您可以使用此公式(如果是Excel 2007或更高版本):
=COUNTIFS($H$2:$H$5,$B2,$I$2:$I$5,"A")
进入C2并将其复制并穿过;只需将“A”改为“B”和“C”。
已添加根据行数,我会将数据导入MS Access,创建交叉表查询,然后将此数据复制回Excel。
答案 1 :(得分:0)
您可以使用公式执行此操作。类似的东西:
=IF(AND(LOOKUP($B2,$H$2:$H$6,$I$2:$I$6)="A",LOOKUP($B2,$H$2:$H$6,$H$2:$H$6)=B2),1,0)
替换“B”和“C”。
答案 2 :(得分:0)
试试这个,不是过于强大但确实有效。不确定这与你可能有多快相比?
大约有60,000
的{{1}}行25 keys
。
修改:添加计时器以便正常运作。
5 seconds