找文章 / 找答案
精选问答 更多内容

[可视化] 全局函数&iif函数引用文本参数问题

汤七七七七七青铜四 显示全部楼层 发表于 2021-11-24 17:14:29 |阅读模式 打印 上一主题 下一主题
1
已解决
dateGap函数dateGap(数据列日期1,数据列日期2,"dayofyear")==param["文本参数"]
这样写是否可行,目前使用在iif函数判断条件列,表达式结果条件未使用

dateAdd函数
dateAdd(数据列日期1,"dayofyear",param["文本参数"])==数据列日期2
全局函数dateAdd如何直接引用文本参数列,目前如上使用函数结果列无效


请教引用文本参数参与全局函数及iif函数注意事项

最佳答案

_贝贝 白银一 关注Ta

2021-11-24 17:14:30

这个是时间列吗 是的话 要转为文本格式来做比较
查看完整内容
回复

使用道具 举报

精彩评论10

_贝贝白银一 显示全部楼层 发表于 2021-11-24 17:14:30
这个是时间列吗 是的话 要转为文本格式来做比较
gswt.png
回复

使用道具 举报

_贝贝白银一 显示全部楼层 发表于 2021-11-24 17:29:19
dateGap(数据列日期1,数据列日期2,"dayofyear")==param["文本参数"]   
这个是需要给文本参数赋值吗

dateGap(数据列日期1,数据列日期2,"dayofyear")   这样是可以的


文本参数不是一个列 只是一个单独的参数 现在是需要做什么呢



具体操作步骤是什么呢
回复

使用道具 举报

汤七七七七七青铜四 显示全部楼层 发表于 2021-11-24 17:39:57
永洪tech-zxx 发表于 2021-11-24 17:29
dateGap(数据列日期1,数据列日期2,"dayofyear")==param["文本参数"]   
这个是需要给文本参数赋值吗

背景是:我需要根据[文本参数填写的数字]、[日期列1]、[日期列2] 三者之间进行判断,如果日期列1+文本参数数字的日期结果等于日期列2,则取日期列2数据A,若日期列1+文本参数的日期结果大于昨天日期,则取昨天日期的数据B,否则结果取0
不知道怎么运用函数实现
回复

使用道具 举报

_贝贝白银一 显示全部楼层 发表于 2021-11-25 10:35:41
本帖最后由 永洪tech-zxx 于 2021-11-25 10:43 编辑

日期列做对比的话 注意不要直接用日期类型 需要转为字符串类型做对比


var a =formatDate(dateAdd(col['交易时间'],'dayofyear',param['文本参数1']),'yyyy-MM-dd')      //日期列+文本参数
var b =formatDate(col['日期2'],'yyyy-MM-dd')   //日期列2转为文本
if(a==b){   //文本之间对比

col['日期2']='A'

}
if(a>formatDate(param['_LAST_FULL_DAY_'],'yyyy-MM-dd')){   //param['_LAST_FULL_DAY_']内置参数表示昨天
col['日期2']=param['_LAST_FULL_DAY_']
}
if(a<b)  //其他可能存在情况建议还是写清楚
{0
}

a=b.png
a大于昨天.png
-1.png
回复

使用道具 举报

汤七七七七七青铜四 显示全部楼层 发表于 2021-11-25 11:22:29
永洪tech-zxx 发表于 2021-11-25 10:35
日期列做对比的话 注意不要直接用日期类型 需要转为字符串类型做对比

细节表达式:“iif(iif(formatDate(dateAdd(col['上新时间'],'dayofyear',param["文本参数"]),'yyyy-MM-dd')>formatDate(param['_LAST_FULL_DAY_'],'yyyy-MM-dd'),param['_LAST_FULL_DAY_'],dateAdd(col['上新时间'],'dayofyear',param["文本参数"]))==col['统计时间'],col['期末在途库存'],0)*col['成本价']”
上面是我参照你的写的细节表达式,表格显示结果都是0了,是那里还需要注意格式转换么?
你好,你给我的脚本是写在表格的脚本还是整个报告的脚本啊,脚本用的不太溜。
我现在是需要优先通过细节表达式计算一个到最小粒度的值,再通过聚合表达式计算两个细节表达式合计值。
麻烦啦~
回复

使用道具 举报

_贝贝白银一 显示全部楼层 发表于 2021-11-25 11:56:29
是哪个版本呢  这个脚本是新建表达式
回复

使用道具 举报

汤七七七七七青铜四 显示全部楼层 发表于 2021-11-25 15:49:19
永洪tech-zxx 发表于 2021-11-25 11:56
是哪个版本呢  这个脚本是新建表达式

版本:8.0.4b
对的,是新建细节表达式里写的脚本,我现在需要先计算到最小粒度的两个指标,再互相聚合计算再相加;所以使用的是新建细节表达式来判断日期1、日期2、昨天、参数、数据、0之间的关系。
回复

使用道具 举报

汤七七七七七青铜四 显示全部楼层 发表于 2021-11-29 11:18:55
永洪tech-zxx 发表于 2021-11-25 17:01
这个是时间列吗 是的话 要转为文本格式来做比较

在此基础上我有个问题啊,在判断符号>、=、<这些的左右两边如果日期比较需要转换为文本的意思是么?
或者在什么样函数使用或者环境下,有格式的限制?
回复

使用道具 举报

汤七七七七七青铜四 显示全部楼层 发表于 2021-11-29 11:45:57
永洪tech-zxx 发表于 2021-11-25 17:01
这个是时间列吗 是的话 要转为文本格式来做比较

iif(iif(formatDate(dateAdd(col['上新时间'],'dayofyear',param["上新天数2"]),'yyyy-MM-dd')>formatDate(dateAdd(now(),'dayofyear',-1),'yyyy-MM-dd'),formatDate(dateAdd(now(),'dayofyear',-1),'yyyy-MM-dd'),formatDate(dateAdd(col['上新时间'],'dayofyear',param["上新天数2"]),'yyyy-MM-dd'))==formatDate(col['统计时间'],'yyyy-MM-dd'),col['期末在途库存'],0)
现在调整成这样了,但是大于昨天的部分依旧没有数值,是有问题的;不大于昨天是没问题的,那还有哪里需要改动。_last_Full_Day 不能识别,是脚本表达式里面的昨天有问题么?
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部