【问题标题】:Splitting the Filed Name (Table's Header) into Two Separate Lines将归档名称(表格的标题)拆分为两个单独的行
【发布时间】:2019-04-03 10:04:34
【问题描述】:

我有一个如下结构的数据集:

Company.ID  DDR (25632) PTL (89567)
2512             89         74
9875             78         96
7892             14         73

我想将标题分成两行。换句话说,标题的第二部分应该或可以是第一个变量。如何将数据集转换为所需的形式(见下文):

Company.ID          DDR         PTL 
     -            (25632)     (89567)
    2512             89         74
    9875             78         96
    7892             14         73

要在 Qlik 中复制上述示例,请运行以下代码:

LOAD * Inline [
        [Company.ID], [DDR (25632)], [PTL (89567)]
        2512,89,74
        9875,78,96
        7892,14,73
    ];

任何帮助或提示将不胜感激!

【问题讨论】:

  • 您是否希望专门转换原始数据,或者,这是使标题在直表或动态表中的多行上显示的一种手段?

标签: header qlikview qliksense


【解决方案1】:

您需要循环列、重命名它们并与新值连接。这是我写的例子:

table:
LOAD * Inline [
        Company.ID, DDR (25632), PTL (89567)
        2512,89,74
        9875,78,96
        7892,14,73
    ];


For i=1 to NoOfFields('table')

    LET vField = FieldName($(i),'table');
    LET vFieldName_$(i) = SubField('$(vField)',' ',1);
    LET vFieldValue_$(i) = SubField('$(vField)',' ',2);

    If '$(vField)' <> '$(vFieldName_$(i))' THEN

        Rename Field '$(vField)' TO '$(vFieldName_$(i))'; 

    EndIf

next

Concatenate(table)
Load * Inline [
    '$(vFieldName_1)', '$(vFieldName_2)', '$(vFieldName_3)'
    '$(vFieldValue_1)', '$(vFieldValue_2)', '$(vFieldValue_3)'
];

【讨论】:

  • 感谢您的回答,这里的 Qlik 社区很小。您的代码肯定适用于一个小表,但如果您有一个长度为 100 的表,那么将每个 vFieldNames 和 vFieldValues 连接到一个 vFieldNameConsolidated 和 vFieldValuesConsolidated 中是合适的。我已经实现了这个!很高兴认识你。
  • 您好,谢谢。您可以选择我的答案为正确答案还是自己添加答案以关闭此问题作为已回答?问候休伯特
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 2011-06-20
  • 1970-01-01
相关资源
最近更新 更多