数据列求和,公式过滤问题

sum(GREPARRAY(split(ARRAY(value("ds1",2,9,"BU1 total",1)),","),INARRAY(item,split($fine_role,","))>0))>0这个公式怎么改可以求ds1中B1包含"6"的U2的和($fine_role为"超级管理员,6")

注意:这里的"6"并不是固定的,不同用户权限不同,需要B1字段来匹配$fine_role,当B1字段包含用户的权限时,才计算

image.png

FineReport 帆软用户Dcu3auzqkx 发布于 2025-8-25 12:09 (编辑于 2025-8-25 13:56)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
帆软用户Dcu3auzqkxLv2见习互助
发布于2025-8-25 14:55

image.png

最佳回答
0
华莉星宸Lv7专家互助
发布于2025-8-25 12:13
sum(GREPARRAY(split(ARRAY(value("ds1",2,9,"BU1 total",1)),","),INARRAY(item,split($fine_role,","))>0&&find("6,",item)>0))>0

最佳回答
0
ScyalcireLv7高级互助
发布于2025-8-25 13:38(编辑于 2025-8-25 14:07)
sum(
  GREPARRAY(
    ARRAY(value("ds1", 2, 9, "U2", 1)),  // 获取U2字段值数组
    INARRAY(
      item, 
      split(
        ARRAYJOIN(
          GREPARRAY(
            split(ARRAY(value("ds1", 2, 9, "B1", 1)), ","),  // 获取B1字段值数组
            INARRAY(item, split($fine_role, ",")) > 0  // 检查B1是否包含权限
          ), 
          ","
        ), 
        ","
      )
    ) > 0
  )
)

最佳回答
0
技术支持--哈哈Lv4初级互助
发布于2025-8-25 14:48
公式修改方案

sum(GREPARRAY(split(ARRAY(value("ds1",2,9,"BU1 total",1)),","),

FIND(B1, $fine_role) > 0 && item = "U2"))
公式解析
  1. split(ARRAY(value("ds1",2,9,"BU1 total",1)),",") - 将数据集ds1的特定值转换为数组

  2. FIND(B1, $fine_role) > 0 - 检查B1字段是否包含在用户角色中

  3. item = "U2" - 筛选出U2的值

  4. sum() - 对符合条件的值进行求和

注意事项
  1. 该公式需要在公式编辑界面勾选"填报/分析时,保留公式用于计算"

  2. 如果B1字段可能包含多个值,可以使用SPLIT(B1,",")和INARRAY组合判断

  • 3关注人数
  • 51浏览人数
  • 最后回答于:2025-8-25 14:55
    请选择关闭问题的原因
    确定 取消
    返回顶部