将INDIRECT与IF AND COUNTIF结合起来

时间:2016-06-05 16:41:47

标签: excel google-sheets excel-formula

我正在开发一个基于Google表格的工作数据库,该数据库显示潜水艇的可用性,教师可用等。

我需要将一些类似的公式复制到下面的行中。一年中每天有365行,我需要复制几个具有不同公式的列。声音很直接,但是,有一些事情会让事情变得更难。

这是其中一个公式......

=IF(AND(COUNTIF(MER!$T4:$T23,AE3)=0,COUNTIF(CHO!$T4:$T23,AE3)=0, COUNTIF(KEP!$T4:$T23,AE3)=0,COUNTIF(SUP!$T4:$T23,AE3)=0),AE3,"")
  1. 我在Sheet'AVL'工作。它基本上引用了范围 在同一工作簿中查找匹配的五个不同工作表 反对我们雇用的潜水教练名单 每天工作。
  2. 我需要将公式复制到下面的行,所以接近 今年剩余时间的200行,以及新的表格 2017年,还有365行。
  3. 如果我在Google图纸上正常复制,>粘贴特殊>粘贴公式,该公式将公式上的行数增加一行。 EG:

    =IF(AND(COUNTIF(MER!$T4:$T23,AE3)=0,COUNTIF(CHO!$T4:$T23,AE3)=0, COUNTIF(KEP!$T4:$T23,AE3)=0,COUNTIF(SUP!$T4:$T23,AE3)=0),AE3,"")
    =IF(AND(COUNTIF(MER!$T5:$T24,AE4)=0,COUNTIF(CHO!$T5:$T24,AE4)=0, COUNTIF(KEP!$T5:$T24,AE4)=0,COUNTIF(SUP!$T5:$T24,AE4)=0),AE4,"")
    

    这对我没有好处,因为我需要从其他工作表中引用的范围是完全不同的,但是,在我正在处理'AVL'的工作表上引用了工作人员姓名的单元格向下移动了一个行是正确的。

    其他五张纸的范围每次需要向下移动26行。 EG:

    =IF(AND(COUNTIF(MER!$T4:$T23,AE3)=0,COUNTIF(CHO!$T4:$T23,AE3)=0, COUNTIF(KEP!$T4:$T23,AE3)=0,COUNTIF(SUP!$T4:$T23,AE3)=0),AE3,"")
    =IF(AND(COUNTIF(MER!$T30:$T49,AE4)=0,COUNTIF(CHO!$T30:$T49,AE4)=0, COUNTIF(KEP!$T30:$T49,AE4)=0, COUNTIF(SUP!$T30:$T49,AE4)=0, COUNTIF(OTH!$T30:$T49,AE4)=0),AE4,"")
    =IF(AND(COUNTIF(MER!$U56:$U75,AE5)=0,COUNTIF(CHO!$U56:$U75,AE5)=0, COUNTIF(KEP!$U56:$U75,AE5)=0,COUNTIF(SUP!$U56:$U75,AF5)=0, COUNTIF(OTH!$U56:$U75,AE5)=0),AE5,"")
    

    Etc等。

    我之前使用了INDIRECT函数来做其他事情,并且想知道我是否应该考虑将我用于其他东西的公式与我需要复制1,000次的公式相结合。 EG ...

    =INDIRECT("CHO!B" & (3 + 26*(ROW()-3)))
    

    调整和修改并与......结合使用。

    =IF(AND(COUNTIF(MER!$T4:$T23,AE3)=0,COUNTIF(CHO!$T4:$T23,AE3)=0, COUNTIF(KEP!$T4:$T23,AE3)=0,COUNTIF(SUP!$T4:$T23,AE3)=0),AE3,"")
    

    以某种方式每次复制公式时将范围增加26行,同时保留我与AE3等匹配的单元格,只增加一行。

1 个答案:

答案 0 :(得分:1)

使用一对非易失性¹INDEX functions构建您的细胞范围。

例如,这两个单元格范围完全相同。

=T4:T23
=INDEX(T:T, 4):INDEX(T:T, 23)

其余的只是简单的数学和ROW function。把它放在第一行。

=IF(AND(COUNTIF(INDEX(MER!$T:$T, (ROW(1:1)-1)*26+4):INDEX(MER!$T:$T, (ROW(1:1)-1)*26+23), AE3)=0,
        COUNTIF(INDEX(CHO!$T:$T, (ROW(1:1)-1)*26+4):INDEX(CHO!$T:$T, (ROW(1:1)-1)*26+23), AE3)=0,
        COUNTIF(INDEX(KEP!$T:$T, (ROW(1:1)-1)*26+4):INDEX(KEP!$T:$T, (ROW(1:1)-1)*26+23), AE3)=0,
        COUNTIF(INDEX(SUP!$T:$T, (ROW(1:1)-1)*26+4):INDEX(SUP!$T:$T, (ROW(1:1)-1)*26+23), AE3)=0), AE3, "")

根据需要填写。

¹当整个工作簿中的任何内容发生变化时,不仅在影响其结果的某些内容发生变化时,挥发性函数都会重新计算。 易失性函数的示例包括INDIRECTOFFSETTODAYNOWRANDRANDBETWEENCELLINFO工作表函数的某些子函数也会使它们变得不稳定。