控制公式以确保所有过滤的数据都是正确的

时间:2017-08-31 10:36:21

标签: excel excel-vba excel-formula max vba

我正在使用高级过滤器,根据选择,我得到一个数据列表(可以是大量数据)。

在该数据列表中,我在#34; AI"列中有电子邮件地址。从单元格18到数据文件夹的长度。因为这个电子邮件列表用于通知,我需要确保所有正确的,我没有N / A或错误。我现在正在使用这个公式:

{= IF(SUM(IF(ISNA(AI18:AI29),1,IF(AI18:AI29 ="",1,0)))大于0,"错误列AI","是")}

上面的公式可以满足需要,但它会在单元格29处停止。我不想手动更改公式的长度。我一直试图将MAX纳入其中,但它似乎不起作用。

问题:根据高级过滤器的结果,我需要在此公式中使用29来上升或下降。

1 个答案:

答案 0 :(得分:0)

您需要做的是指定一个变量范围。这可以通过OFFSET功能完成。如果您使用AI18:AI29替换范围OFFSET(AI18,0,0,FILTER_RESULT,1),您应该得到您想要的内容。其中FILTER_RESULT是范围的高度。在29的情况下,它的高度为11.

OFFSET(
   reference cell: The base cell to refer to.
   rows: The number of rows, up or down, that you want the upper-left cell to refer to.
   cols: The number of columns, to the left or right, that you want the upper-left cell of the result to refer to.
   height: The height of the range you want
   width: The width of the range you want