Excel IF Statments或VBA

时间:2017-06-27 12:36:45

标签: excel excel-vba excel-formula array-formulas vba

我有一张工作表,在M栏中有访问日期,然后我输入了一个公式,然后在第N列显示的日期增加了6个月。

然后我有一个隐藏的两列可以计算出日期,从那天起它已经过RAG评估,红琥珀绿。

  • 列M是访问日期
  • 列N是下次访问
  • 列Q是告诉您
  • 之上或之下多少天的公式
  • 如果是G,A,R(绿色,琥珀色或红色),则列R是基于Q列的位置

我有这个公式列出所有日期并删除N列中的任何空白单元格

  

= IFERROR(INDEX(Sheet2!$ N $ 3:$ N $ 78,小(IF(LEN(Sheet2!$ N $ 3:$ N $ 78)= 0,“”,ROW(Sheet2!$ N $ 3:$ N $ 78)-MIN(ROW(Sheet2!$ N $ 3:$ N $ 78))+ 1),ROW(Sheet2!N2))),“”)

我想要的是当下面的公式为真时,上面的内容被触发但仅适用于R列中有R的单元格

  

= IF(CNI!R3 =“R”,SHEET2!N3,“”)

希望这是有道理的。

如果更容易实现,我不介意使用VBA

1 个答案:

答案 0 :(得分:0)

对不起,我为此回复你了几天。

=IFERROR(INDEX(Sheet2!$N$3:$N$78, SMALL(_
IF(LEN(Sheet2!$N$3:$N$78)=0,"", ROW(Sheet2!$N$3:$N$78)-MIN(ROW(Sheet2!$N$3:$N$78)_
)+1), ROW(Sheet2!N2))),"")

但如果您有其他标准,则希望发生这种情况:

=IF (CNI!R3="R",SHEET2!N3,"")

您可以使用AND()在if语句中使用多个条件。我想你可以使用以下内容,假设你只想要应用特定的If语句(取自上面的,我帖子的第一个编码部分中的if语句):

IF(AND(CNI!R3="R",LEN(Sheet2!N$3:$N$78)=0),"", ROW(Sheet2!$N$3:$N$78)-MIN(ROW(Sheet2!$N$3:$N$78)

如果您的目标是替换(从您的第二位代码)Sheet2!N3(您的真实条件),那么您将查看以下行,其中包括您的代码行:

=IF (CNI!R3="R",IFERROR(INDEX(Sheet2!$N$3:$N$78, SMALL(IF(LEN(Sheet2!$N$3:$N$78)=0,"", ROW(Sheet2!$N$3:$N$78)-MIN(ROW(Sheet2!$N$3:$N$78))+1), ROW(Sheet2!N2))),""),"")

如果这有助于解决问题,请告诉我们!