使用Excel公式,我试图为其旁边有一个字母的NAME拉取MAX值。
例如:最高#,针对每个唯一名称的特定%
所以杰夫的Q值是7。
(我试图解释,因为它在我的脑海里有意义,但对其他人来说可能没有意义..)
Name % #
Jeff O 4
Jeff D 3
Jeff Q 4
Jeff O 1
Jeff D 9
Jeff Q 7
Tom O 6
Tom D 7
Tom Q 8
Tom O 2
Tom D 8
Tom Q 3
Peter O 3
Peter D 8
Peter Q 7
Peter O 4
Peter D 10
Peter Q 3
Bob O 2
Bob D 6
Bob Q 10
Bob O 6
Bob D 10
Bob Q 9
Mark O 4
Mark D 7
Mark Q 4
Mark O 7
Mark D 8
Mark Q 1
如果没有为每个人提供专用工作表并在特定列上运行MAX,我想不出一种方法来运行它。
我在各种配置中尝试过IF,VLOOKUP和MAX,但我什么都没得到。
有没有人有这方面的经验,请指点我正确的方向?
答案 0 :(得分:2)
;WITH
test_data
AS
(
SELECT tbl.* FROM (VALUES
( 1, 'A', 7.00, '21-Dec-2017')
, ( 2, 'A', 5.00, '21-Dec-2017')
, ( 3, 'A', 6.00, '20-Dec-2017')
, ( 4, 'B', 1.00, '21-Dec-2017')
) tbl ([ID], [Name], [Value], [TimeStamp])
)
,
test_data_order
AS
(
SELECT
[ID]
, [Name]
, [Value]
, [TimeStamp]
, EX_ROW_NUMBER = ROW_NUMBER() OVER
(
PARTITION BY
[Name]
ORDER BY
[TimeStamp] DESC
, [ID] DESC
)
FROM
test_data
)
SELECT
*
FROM
test_data_order
WHERE
EX_ROW_NUMBER = 1
函数应该是您想要的。例如,假设您在A:C列中有数据公式
MAXIFS
将为您提供C列中的最大数字,其中A行中的值为" Jeff"并且行B中的值是" Q"。