下午好,
我希望在Power Pivot中执行的操作是使值依赖于同一表中的其他两个列。
我首先要做的事情:在表中输入名称的最新日期。我现在需要根据名称和日期来匹配ID号。
例如:
ID | Name | Date | Latest Date | ID Number
1 | John | 1/1/2018 | 1/5/2018 |
2 | Kyle | 1/15/2018 | 1/30/2018 |
3 | John | 1/5/2018 | 1/5/2018 |
4 | Kyle | 1/30/2018 | 1/30/2018 |
我需要的是
ID | Name | Date | Latest Date | ID Number
1 | John | 1/1/2018 | 1/5/2018 | 3
2 | Kyle | 1/15/2018 | 1/30/2018 | 4
3 | John | 1/5/2018 | 1/5/2018 | 3
4 | Kyle | 1/30/2018 | 1/30/2018 | 4
关于如何完成脚本来实现这一点的任何想法吗?
答案 0 :(得分:0)
最接近的等效项是LOOKUPVALUE函数。
这应该用作计算列:
= LOOKUPVALUE(Table1[ID], Table1[Date], [Latest Date])
还有其他使用过滤的方法,但是上面应该是最熟悉的。
答案 1 :(得分:0)
如果每个“最新日期/名称”只有一个ID号,则可以使用LOOKUPVALUE
。
使用此方法返回与名称和最新日期匹配的ID:
作为计算列;
LOOKUPVALUE (
Table1[ID],
Table1[Name], [Name],
Table1[Date], [Latest Date]
)
作为衡量标准
Latest ID:=
VAR LookupName =
IF (
HASONEVALUE ( Table1[Name] ),
VALUES ( Table1[Name] ),
BLANK ()
)
VAR LookupDate =
IF (
HASONEVALUE ( Table1[Latest Date] ),
VALUES ( Table1[Latest Date] ),
BLANK ()
)
RETURN
LOOKUPVALUE (
Table1[ID],
Table1[Name], LookupName,
Table1[Date], LookupDate
)
但是,如果您有多个ID号,并且名称和日期与最新日期相匹配,则会返回错误:
提供了多个值的表,其中期望有一个值
相反,您可以使用:
Latest ID:=
VAR LookupDate =
IF (
HASONEVALUE ( Table1[Latest Date] ),
VALUES ( Table1[Latest Date] ),
BLANK ()
)
RETURN
CALCULATE (
FIRSTNONBLANK ( Table1[ID] , 1),
FILTER (
ALLEXCEPT ( Table1, Table1[Name] ),
Table1[Date] = LookupDate
)
)