根据数据的子集计算所有行的度量

问题描述 投票:0回答:1

我有一个包含如下数据的数据集:

客户 发票号码 发票日期 付款日期 付款_天数 open_flag
客户1 发票1 1/1/24 10/1/24 9
客户1 发票2 1/1/24 20/1/24 19
客户1 发票3 5/1/24 10/1/24 5
客户2 发票4 11/1/24 13/1/24 2
客户2 发票5 11/1/24 13/1/24 2
客户3 发票6 12/1/24 18/1/24 6
客户1 发票7 1/2/24 不适用 是的
客户2 发票8 3/2/24 不适用 是的
客户3 发票9 4/2/24 不适用 是的

并且我想计算以下列 - 这不应受到任何过滤器选择的影响!

... | **calculated customer avg** | **expected payment date** |
... | ----------------------- | ------------------------- |      
... | (9 + 19 + 5) / 3 = 11   |          12/1/24          |
... | (9 + 19 + 5) / 3 = 11   |          12/1/24          |
... | (9 + 19 + 5) / 3 = 11   |          16/1/24          |
... |    (2 + 2) / 2 = 2      |          13/1/24          |
... |    (2 + 2) / 2 = 2      |          13/1/24          |
... |      (6) / 1 = 6        |          18/1/24          |
... | (9 + 19 + 5) / 3 = 11   |          12/2/24          |
... |    (2 + 2) / 2 = 2      |          5/2/24           |
... |      (6) / 1 = 6        |          10/2/24          |

我的问题是我只能计算平均值。已关闭发票上的天数,但我无法在未结发票上使用这些计算。

我只能在工作表中工作(无权访问数据加载编辑器)。

我想用这个来查看未结发票的预期付款日期,这意味着如果我过滤掉所有已关闭的发票,计算仍应返回一个值。

我只能计算平均值(我已经删除了异常值)。 但这些仅在关闭的行上返回...

= Avg(
        IF(
            [invoice date] <> [payment date] and SQRT(POW([invoice date] - [payment date],2)) <= 200, 
        [invoice date] - [payment date], 
        null())) 

谢谢你

measure qliksense
1个回答
0
投票

如果我答对了你的问题,这个函数应该做你想要的:

Date(invoice_date + Aggr({1} NoDistinct Avg(payment_date-invoice_date), Customer), 'D/M/YY')

即使您过滤掉已关闭的发票,它也会返回

expected_payment_date
,例如:

enter image description here

Aggr()
独立于表对象聚合
payment_days
,并且集合标识符
{1}
会忽略所有选择。

数据加载语句:

Data:
Load Customer,
     [Invoice Number],
     Date#([Invoice Date], 'D/M/YY') as invoice_date,
     Date#([Payment Date], 'D/M/YY') as payment_date,
     payment_days,
     open_flag     
Inline [
Customer,   Invoice Number, Invoice Date,   Payment Date,   payment_days,   open_flag
Customer 1, invoice 1,  1/1/24,     10/1/24,    9,  no
Customer 1, invoice 2,  1/1/24,     20/1/24,    19, no
Customer 1, invoice 3,  5/1/24,     10/1/24,    5,  no
Customer 2, invoice 4,  11/1/24,    13/1/24,    2,  no
Customer 2, invoice 5,  11/1/24,    13/1/24,    2,  no
Customer 3, invoice 6,  12/1/24,    18/1/24,    6,  no
Customer 1, invoice 7,  1/2/24,     ,            ,  yes
Customer 2, invoice 8,  3/2/24,     ,            ,  yes
Customer 3, invoice 9,  4/2/24,     ,            ,  yes
];
© www.soinside.com 2019 - 2024. All rights reserved.