1. iferror函数

  • 遇到错误时使用指定数值替换
  • 注意:替换的必须是数值
  • 例子
    = [销售数量]*[单价]= iferror([销售数量]*[单价],0)= iferror([销售数量]*[单价],'错误计算')
    
    在这里插入图片描述

2. if 函数

  • 格式
    • if(表达式,符合返回值,不符合返回值【可省略不写】)
  • blank():为空
  • 例子
    = if([性别]="男","男")= if([性别]="男","男","女")= if([取款日期]<>blank(),[取款日期]-[存款日期],blank())
    
    在这里插入图片描述

3. switch函数

  • 格式
    • switch(表达式,值1,结果1,值2,结果2…,…,[else])
    • 最后一个参数可以省略不写,省略时返回为空
  • 特殊用法
    • switch(true,值1,结果1,值2,结果2…,…,[else])
    • 使用true作为第一参数时,返回条件判断list中为第一个为true的结果
  • 例一
    = switch('例3'[],
    1,"一月",
    2,"二月",
    3, "三月",
    4,"四月",
    5, "五月",
    6,"六月",
    7, "七月",
    8,"八月",
    9, "九月", 
    10,"十月",
    11,"十一月", 
    12,"十二月",
    "未能识别")
    
    在这里插入图片描述
  • 例二:switch特殊用法
    = switch(true(),
    '例4'[年龄]<30,"30岁以下",
    '例4'[年龄]<40,"30-40岁",
    '例4'[年龄]<50,"40-50岁",
    "50岁以上")
    
    在这里插入图片描述

4. hasonefilter函数

  • 判断是否被筛选
  • 语法:hasonefilter(列名)
  • 是被直接筛选影响的。
  • 当指定的列有且只有一个由直接筛选产生的值时,返回true
  • 参数必须使用物理列,即表中存在的列,不支持返回列的表达式
  • 例一
    总分 = sum('案例1'[成绩])
    hasonefilter = if(HASONEFILTER('案例1'[姓名]),[总分],blank())
    
    在这里插入图片描述
  • 例二
    总金额 = sum('案例2'[销售金额])
    外汇转人民币 = if(HASONEFILTER('汇率'[货币]),FIRSTNONBLANK('汇率'[汇率],"")*[总金额],blank())
    人民币转外汇 = if(HASONEFILTER('汇率'[货币]),divide([总金额],FIRSTNONBLANK('汇率'[汇率],1)),blank())
    
    
    在这里插入图片描述

5. hasonevalue函数

  • 判断是否只有一行数据
  • 语法:hasonevalue(列)
  • 通常与if函数搭配使用,判断某列是否只有一行数据
  • 例一:找出有一个成绩老师的分数
    总分 = sum('案例1'[成绩])
    姓名唯一的人分数 = if(HASONEVALUE('案例1'[姓名]),[总分],blank())
    
    在这里插入图片描述

6. selectedvalue函数

  • 当指定列中只有一个值时返回该值,否则返回备选结果,省略备选结果时返回空值
  • 格式:selectedvalue(‘表名’[列名]),【代替(省略返回空)】)
  • 例子
    -- 两个公式等价
    姓名唯一的人分数 = if(HASONEVALUE('案例1'[姓名]),[总分],blank())
    姓名唯一的人分数1 = SELECTEDVALUE('案例1'[成绩])
    
    在这里插入图片描述
  • 例一:切片器控制选择不同属性柱形图
    • 人工建表:创建唯一值
    参数表 = DATATABLE("字段名",STRING,{{"销售量"},{"销售额"}})	
    
    在这里插入图片描述
    • 创建度量值
      = switch(SELECTEDVALUE('参数表'[字段名]),"销售量",sum('案例3'[销售量]),"销售额",sum('案例3'[销售金额]))
      
    在这里插入图片描述
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐