创建度量以根据另一个 table 中的 TO 和 FROM 数字计算行

Create measure to calculate rows based on TO and FROM figures in another table

我有一份每周获取数据的报告。我有一个星期 table,其中包含星期和日期以及使用以下 table 设置的关系。

我有一个队列摘要table;

我有 ConciergeHours table;

礼宾服务时间每天都不同,所以我将开始和结束时间保存在 table 中,以便我们可以动态更新它。

我正在尝试创建一个度量来计算我们在 ConciergeHours table 的时间之间进行了多少互动。请记住,这是一份每周报告,因此在一周中的任何一天,时间可能会有所不同。

我们要计算的是;

ConciergeHours 开始时间和结束时间之间队列 LinkConciergeVQ(QueueSummary table)接受的交互次数 table减去开始时间和结束时间之间队列 LinkVQ(QueueSummary table)提供的交互次数ConciergeHours 结束时间 table

我目前有这样的措施。它有效,但没有正确遵守时间间隔,我知道这是 MIN、MAX 的结果。

m_deflections = 
CALCULATE (
    SUM ( QueueSummary[s_accepted] ),
    QueueSummary[queue] = "LinkConciergeVQ",
    filter(QueueSummary, [hour] >= min(ConciergeHours[starthour])),
    filter(QueueSummary, [hour] < max(ConciergeHours[endhour]))
)
    - CALCULATE (
        SUM ( QueueSummary[s_offered] ),
        QueueSummary[queue] = "LinkVQ",
        filter(QueueSummary, [hour] >= min(ConciergeHours[starthour])),
        filter(QueueSummary, [hour] < max(ConciergeHours[endhour]))
    )

希望我解释正确。

如果有人可以提供任何帮助!?

非常感谢

对于每个 CALCULATE,我会将 2 对 FILTER 函数折叠成一个 FILTER。这将针对 starthour 和 endhour 组合应用过滤器(&& 表示 AND),我希望它们当前应用为 OR 逻辑,因此没有任何效果。

沿着这条线:

m_deflections =
CALCULATE (
    SUM ( QueueSummary[s_accepted] ),
    QueueSummary[queue] = "LinkConciergeVQ",
    FILTER (
        QueueSummary,
        [hour] >= MIN ( ConciergeHours[starthour] )
            && [hour] < MAX ( ConciergeHours[endhour] )
    )
)
    - CALCULATE (
        SUM ( QueueSummary[s_offered] ),
        QueueSummary[queue] = "LinkVQ",
        FILTER (
            QueueSummary,
            [hour] >= MIN ( ConciergeHours[starthour] )
                && [hour] < MAX ( ConciergeHours[endhour] )
        )
    )

不确定我是否理解您的 table 关系,但如果它是 1:* 从 ConciergeHours 到 QueueSummary 通过日期,那么我认为您可以使用此措施,或者至少它让您走上正轨,我希望:

m_deflections = 

var s_accept = 
SUMX(
    'ConciergeHours',
    var startH = 'ConciergeHours'[startHour]
    var endH = 'ConciergeHours'[endHour]
    return
    CALCULATE(
        SUM('QueueSummary'[s_accepted]),
        'QueueSummary'[hour] >= startH && 'QueueSummary'[hour] < endH
    )
)

var s_offered = 
SUMX(
    'ConciergeHours',
    var startH = 'ConciergeHours'[startHour]
    var endH = 'ConciergeHours'[endHour]
    return
    CALCULATE(
        SUM('QueueSummary'[s_offered]),
        'QueueSummary'[hour] >= startH && 'QueueSummary'[hour] < endH
    )
)

return 
s_accepted - s_offered