公式问题
  1. value("currency",m2,1,h25)

    公式获得多个值,需要继续判断第二列的字段(第二列=c5单元格),怎么修改公式

FineReport 帆软用户Dcu3auzqkx 发布于 2025-10-14 14:47
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
农夫三拳1Lv6高级互助
发布于2025-10-14 14:54(编辑于 2025-10-14 14:54)

建议改成这种方式:简单多源报表

https://help.fanruan.com/finereport/doc-view-327.html

1625726936597463.png

最佳回答
0
华莉星宸Lv7专家互助
发布于2025-10-14 15:04
value("currency",1,2,C5)

-------------------

VALUE(tableData,col,row)返回tableData中列号为col的值,行号为row。

tableData:tableData的名字,字符串形式的。

row:行号。

col:列号。

备注:

先从报表数据集中查找,然后再从服务器数据集中查找,返回的是tableData的行数。

示例:

VALUE("country",5,3)等于SouthAmerica。

VALUE("Simple",8,3)等于jonnason。

VALUE("country",5,"大陆")等于SouthAmerica。

VALUE(tableData,col)返回tableData中列号为col的一列值。

VALUE(tableData,targetCol,orgCol,element)返回tableData中第targetCol列中的元素,这些元素对应的第orgCol列的值为element。

示例:

tableData:co 

国家 省份

中国 江苏

中国 浙江

中国 北京

美国 纽约

美国 新泽西

VALUE("co",2,1,"中国")等于["江苏","浙江","北京"]。

特别说明:

列号也可以写为列名。VALUE(tableData,targetCol,orgCol,element,idx)返回VALUE(tableData,targetCol,orgCol,element)数组的第idx个值。

特别说明:

idx的值小于0时,会取数组的第一个值,idx的值大于数组长度时,会取数组的最后一个值。

最佳回答
0
yzm665590Lv3见习互助
发布于2025-10-14 15:36

VALUE("cs",1,2,C5) 直接这样不可以么?

最佳回答
0
CD20160914Lv8专家互助
发布于2025-10-14 15:41

这样只返回一个值 的呀!!!

image.png

结果

image.png

image.png

最佳回答
0
技术支持--哈哈Lv4初级互助
发布于2025-10-14 15:46

需要修改 value() 公式以实现多条件判断,解决方案如下:

1. 公式修改方案

在原公式基础上嵌套条件判断,通过 IF 函数筛选第二列匹配的值:

value("currency", m2, 1, h25, IF(INDEXOFARRAY(m2, 1) = C5, 1, 0))

说明

  • INDEXOFARRAY(m2, 1) 获取数据集 m2 第二列的值

  • 仅当第二列等于 C5 单元格时返回对应第一列的值

公式示例

2. 替代方案(复杂条件)

若需同时匹配多列,可使用 AND 函数组合条件:

value("currency", m2, 1, h25, IF(AND(INDEXOFARRAY(m2, 1) = C5, 其他条件), 1, 0))
注意事项
  • 确保 m2 数据集包含所需列,且 C5 单元格值为有效匹配项

  • 若返回多值需拼接,可结合 JOINARRAY 函数处理

  • 6关注人数
  • 46浏览人数
  • 最后回答于:2025-10-14 15:46
    请选择关闭问题的原因
    确定 取消
    返回顶部