公式1

公式1

参考表格,如果满足某些条件,Details我该如何编写这个公式来减去Date2Date1

计算: =Date1-Date2周末除外,或者""不满足条件的情况。

状况:

  1. Type
    第 1 列: 匹配任意{"new","old","contract"}
  2. letter
    第 2 列:  ="yes"
  3. Business
    第 3 列: 匹配"hospital"任意位置
    "myhospital2,  "Great hospital" ,  "hospital #" , "hospital" 等。
  4. Date1
    第 4 栏:  =NOT(ISBLANK)

我不确定如何在公式中组合所有这些条件。这是我尝试的:

IF(OR(Details[Type:]="new")
IF(OR(Details[Type:]="old")
IF(OR(Details[Type:]="contract")
IF(AND( Details[Letter]="Yes"
IF(Details[Business]="Hospital"
Isnotblank(Date1)

这是我的示例数据,预期输出在Result第 5 列。

A C F
1 类型 商业 日期1 日期2 结果
2 新的 是的 医院 2023 年 7 月 21 日 2023 年 7 月 10 日 11
3 老的 是的 医院 2023 年 6 月 25 日
4 合同 是的 护理 2023 年 8 月 10 日 2023 年 6 月 14 日
5 推荐 是的 医院 2023 年 7 月 10 日 2023 年 7 月 5 日

在此处输入图片描述

专栏评论Result

  1. F2=11   符合所有条件
  2. F3=""   Date1是空白
  3. F4=""   Business值无效(“护理”)
  4. F5=""   Type值无效(“引荐”)

答案1

公式1

=IF(
   AND(
       OR(Details[@Type]="new",
          Details[@Type]="old",
          Details[@Type]="contract"),
       Details[@letter]="yes",
       IFERROR(FIND("hospital",Details[@Business]),),
       LEN(Details[@Date1])),
    NETWORKDAYS(Details[@Date2],Details[@Date1]), "")

   功能支持:寻找如果错误信息网络日或者  

二级方程式

=IF(
  ((Details[@Type]="new")+(Details[@Type]="old")+ 
   (Details[@Type]="contract"))*(Details[@letter]="yes")* 
   IFERROR(FIND("hospital",Details[@Business]),)*
   (Details[@Date1]>0),
  NETWORKDAYS(Details[@Date2],Details[@Date1]),"")
解释
  • Excel 需要数字TRUE/FALSE值的地方被解释为1/0
  • 同样,TRUE/FALSE预计数字<>0/0将被接受
  • 加法+等同于OR乘法*等同于AND
  • 数学运算顺序适用(括号、指数、乘法/除法、加法/减法):
    (1+0+0)*1*1*0=0但是1+0+0*1*1*0=1
类型 商业 日期1
新的
(1+0+0)

*
是的
1

*
医院#
1

*
2023 年 7 月 21 日
1

=

1
老的
(0+1+0)

*
是的
1

*
abc_医院
1

*

0

=

0
合同
(0+0+1)

*
是的
1

*
护理
0

*
2023 年 8 月 10 日
1

=

0
推荐
(0+0+0)

*
是的
1

*
医院#abc
1

*
2023 年 7 月 10 日
1

=

0

公式 3

  • 无法放置在表格内,因为表格不支持溢出
  • 将使用单个公式返回整列的结果
  • 两个关键变化二级方程式
    1. @删除以引用整个列
    2. [Date1][Date2]通过添加零转换为数组,因为 NETWORKDAYS 不支持范围。
=IF(
  ((Details[Type]="new")+(Details[Type]="old")+ 
   (Details[Type]="contract"))*(Details[letter]="yes")* 
    IFERROR(FIND("hospital",Details[Business]),)*
   (Details[Date1]>0),
  NETWORKDAYS(Details[Date2]+0,Details[Date1]+0),"")

相关内容