【问题标题】:Filling Blank values from value from above in Qlik Sense?在 Qlik Sense 中从上面的值填充空白值?
【发布时间】:2017-09-06 14:47:13
【问题描述】:

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,

那么,对于值 45、213 和 688,如何使用日期 01.01.2013 填充空白; 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
];

如何在 Qlik Sense 的 Data Load Editor 中填充空白?

【问题讨论】:

    标签: loading qliksense blank-line


    【解决方案1】:

    运行脚本后,DateDate1 两个字段将被填充。 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
    ];
    

    结果:

    【讨论】:

    • 列名中有空格怎么办?您是否必须转义空格或引号或其他内容?我可以让这个工作,但在列名中遇到空格。
    • 我用一个不起作用的小例子更新了这个问题here,我可以让你的例子正常工作,但没有稍微修改过的版本。
    【解决方案2】:

    您可以得到如下所示的非工作示例。 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 中的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2022-11-08
      • 2013-05-01
      • 1970-01-01
      • 2021-10-15
      相关资源
      最近更新 更多