如何用index函数把数据库中给定一个时间段内符合给出的一些条件的所有行...
发布网友
发布时间:2024-03-10 21:25
我来回答
共2个回答
热心网友
时间:2024-08-24 06:57
你这个数据,这么多条件, 如果用公式写也不是不可以但是需要数组公式,会非常麻烦。数组公式运算量也会很大,所以会导致运算非常缓慢。
建议用VBA来解决,可以实现你的问题,VBA运算也比较快,统计更准确。
当然,写VBA代码需要你的原表样表。如果让我写不免费。有必要的话可私信。 以下可以说一下思路。
如果用公式,要计算每一列的数据是否符合条件,如果符合所有组合条件,则返回行号,如果不符合所有条件,则返回工作表最大行号。然后用small或者large+row函数将对应符合条件的行号根据序列提取出来,然后再用index或者indirect函数返回相应的数据。由于你要查询的数据量比较大,每个单元格都要把数组中的数据运算一遍,再提取相应的数据,所以运算量非常大。可能会卡的受不了。
用VBA的思路,核对每一行数据,如果符合条件的,写入数组或者字典,然后将数组或者字典中的数据输出即可。所以每一行的数据只用提取一遍,而且内存运算, 速度非常快。 当然,如果不习惯这个, 也可以用复制粘贴的方法, 符合条件的直接粘贴过来也行。这样数据量大的话,可能会慢一些,但是可以带格式,代码相对好写一些,比较直观。
不管用哪种方式,做现在你这个要求的工作,都是代码比较合适。
如果还有问题,欢迎继续追问或者私信。
热心网友
时间:2024-08-24 07:00
把问题作为内容(邮件主题一定要包含“excel”,本人以此为依据辨别非垃圾邮件,以免误删),excel样表文件(尽量详细说明现状和目标效果)作为附件发到1流3油箱:yqch134帮你看下