Qlik Sense是一个BI工具,我需要用上面的值填充空白值
(来自此相关thread的图片)
Qlik View中的解决方案如下thread,但在Qlik Sense中,它只填充低于上述值的一个值。
if(len(trim("Date"))=0, peek("Date"), "Date") as Date1,
if("Date"= ' ' or "Date"= '' or isnull ("Date"), Previous("Date"),"Date") as Date11,
那么我怎样才能填充日期01.01.2013
的空白值45,213和688;和02.01.2013
代表3232,578和64421。
无效的小工作示例
Dataaaaa:
Load
if( len( trim([Date 1]) ) = 0, peek([Date 1]), [Date 1]) as Datee,
if( len( trim(Dat) ) = 0, peek(Dat), Dat) as DateII
;
Load * Inline [
Date 1 , Dat , Value11, Value22,
'Hello' , 'ha' , 20 , 30
'' , , 45 , 321,
'' , , 213 , 23
'' , , 678 , 798
'No Word' , 'he' , 123 , 123
'' , , 3232 , 3232
'' , , 578 , 953
'' , , 64421 , 7655
];
答案 0 :(得分:2)
在下面运行脚本后,两个字段Date
和Date1
都将被填充。 Date1
只是一个例子,说明如何在新领域实现这一目标。
顺便说一句QlikView v12和Qlik Sense在后台有相同的引擎,所以脚本运行时应该没有任何区别。
Data:
Load
// Date,
Value1,
Value2,
if( len( trim(Date) ) = 0, peek(Date), Date) as Date,
if( len( trim(Date) ) = 0, peek(Date1), Date) as Date1
;
Load * Inline [
Date , Value1, Value2,
'01.01.2013', 20 , 30
'' , 45 , 321,
'' , 213 , 23
'' , 678 , 798
'02.02.2013', 123 , 123
'' , 3232 , 3232
'' , 578 , 953
'' , 64421 , 7655
];
结果:
答案 1 :(得分:0)
您可以通过以下方式获取非工作示例。 peek 命令引用正在进行的列,而不是内联列,因此是更正。
Dataaaaa:
Load
if( len( trim([Date 1]) ) = 0, peek(Datee), [Date 1]) as Datee,
if( len( trim(Dat) ) = 0, peek(DateII), Dat) as DateII
;
Load * Inline [
Date 1 , Dat , Value11, Value22,
'Hello' , 'ha' , 20 , 30
'' , , 45 , 321,
'' , , 213 , 23
'' , , 678 , 798
'No Word' , 'he' , 123 , 123
'' , , 3232 , 3232
'' , , 578 , 953
'' , , 64421 , 7655
];
preceding load中的更多信息。