一、上报报表跨表取数问题:(当月增减最开始是通过FETCH_CROSS_ASSIGN_DATA公式,只能使单元格得到整个列表,而非对应的情况)
想要的效果(当月增减):
解决方案:
1.对于数据源进行更改,首先在数据源中新增公式取数:FETCH_CROSS_ASSIGN_DATA(1, 'field_1', default=0, depart_id=None,period=None,status="all")获取id为1的field_1的a表,再使用下面公式获取field_32字段:
FETCH_CROSS_ASSIGN_DATA(1, 'field_32', default=0, depart_id=None,period=None,status="all")
2.以上两个公式得到将两个字段分别形成2个列表。
a. 对这两个列表处理形成列表的字典,这样方便使用vlookup函数取数
b. 最后对这2个列表进行处理,用v2公式解决
#V2#
ret = []
for i in range(len(main32)):
ret.append({'name_': main32[i], 'field_': main1[i]})
c. [VLOOKUP(main2,"name_:eq:{name}",'field_')]这是报表取数,至此就完成了!
二、跨表取数公式
FETCH_CROSS_TABLE_DATA(scheme_id, target, period, p_s=0, default=0)
获取同周期或相对周期的,其他收集活动指标数据。这里在用的时候,scheme_id其实就是你的链接上的id值,例如id:101,target是绑定的指标比如:tar_01,period是周期,这个是看报表周期是"2024-Q2"
那在填写时就是FETCH_CROSS_TABLE_DATA(101,"tar_01","2024-Q2",p_s=0, default=0)
FETCH_CROSS_ASSIGN_DATA(scheme_id, target, default=0, depart_id=None, period=None, status="all")
上报报表填报任务跨表取数
"""
上报报表填报任务跨表取数
:param scheme_id:套表方案ID
:param target: 指标编号
:param default:默认值
:param depart_id:填报方案组织,默认本单位
:param period: 填报周期,默认本周期
:param status: 填报活动状态筛选, 默认值1: 0 未上报+驳回 1:已上报+审核 all:全部
FETCH_CROSS_ASSIGN_DATA(scheme_id, target, default=0, depart_id=None, period=None)
"""
二、若是上报报表判断某个单元格的身份证号 根据身份证号的性别,年龄去判断,若是男,则大于60岁,警告,若是女,则大于55警告;两者的前提是都要保证身份证号为18位。
all(len(item)==18 and 2024-int(item[6:10])<=55 if(int(item[-2])%2==0) else (len(item)==18 and 2024-int(item[6:10])<=60) for item in cell_0_K3)
三、校验身份证号有无重复,这个是在Extend模式下的
四、检测身份证是否是18位,根据身份证号判断性别,若是男,则在60岁以下,若是女,则在55岁以下
all(len(item)==18 and 2024-int(item[6:10])<=55 if(int(item[-2])%2==0) else (len(item)==18 and 2024-int(item[6:10])<=60) for item in cell_0_K3)