Office 365 中 Excel 中 Power Pivot 计算列中正确的 DAX GROUPBY 语法是什么

What is Proper DAX GROUPBY Syntax In Calculated Column in Power Pivot in Excel in Office 365

以下语法输入到 table 访问的计算列公式中 excel(office 365 版本)中的 powerpivot 提供如下:

=GROUPBY(  
   Visits,  
   [Patient Name],  
   "First_Visit_Date", 
   MINX(CURRENTGROUP(), Visits[Visit_Date])
 )

产生错误:

The expression refers to multiple columns. Multiple columns cannot be 
converted to a scalar value.

使用 Excel 中嵌入的 PowerPivot 将计算列 "First_Visit_Date" 添加到下面描述的简单源 table 访问 table 时,正确的 DAX GROUPBY 语法是什么到达目标 table 也列在下面:

来源Table(访问次数):

Patient_Name, Visit_Date, Duration  
Sue,           8/10/2017,       60  
Sue,           8/12/2017,       20  
Sue,           8/20/2017,       15
Bill,          9/ 1/2018,       90  
Bill,         10/ 1/2018,       90  
Sally,         5/22/2016,       30  
Sally,         5/30/2016,       30

目标 Table:

Patient_Name, Visit_Date, Duration, Calculated Column 1 
Sue,          8/10/2017,  60,       8/10/2017    
Sue,          8/12/2017,  20,       8/10/2017  
Sue,          8/20/2017,  15,       8/10/2017
Bill,         9/ 1/2018,  90,       9/ 1/2018
Bill,        10/ 1/2018,  90,       9/ 1/2018
Sally,        5/22/2016,  30,       5/22/2016 
Sally,        5/30/2016,  30,       5/22/2016

您的语法看起来不错,但您可能没有意识到 GROUPBY 输出的是 table,而不是标量值。

这就是您的 DAX returns 如果您将其作为新 table 而不是计算列输入:

对于计算列,您只需要像这样的 DAX 公式:

CalcCol =
CALCULATE(
    MIN(Visits[Visit_Date]),
    ALLEXCEPT(Visits, Visits[Patient_Name])
)

或者像这样:

CalcCol =
MINX(
    FILTER(
        Visits,
        Visits[Patient_Name] = EARLIER(Visits[Patient_Name])
    ),
    Visits[Visit_Date]
)