使用 "MAXIFS" 函数时获取行号
Get row number when using "MAXIFS" function
我正在使用 MAXIFS
(或类似的)来识别 table 中需要的行。但我不需要最大值,我需要来自相邻列的数据。示例:
=MAXIFS(TableComments1[CommentDate];TableComments1[T.Number];TableView1[@Number])
基本上,在这个例子中,我正在搜索行,匹配 "Number"
和最新日期。但在下一步中,我需要获取日期的行号,以便能够使用 INDEX
和 return 适当的列 (TableComments1[Comment]
)。
我尝试了不同的方法 - 没有成功。
PS:性能在这里也很重要。
更新,示例查找 table:"TableComments1"
T.Number | Comment | CommentDate
==============+==============+===========
SCTASK0073347 | correction | 22/07/2018
SCTASK0073347 | update 11 | 25/07/2018
SCTASK0073347 | update 2 | 21/07/2018
PS:排序 "CommentDate"
不是这里的选项。
经过几天的尝试,终于 post 解决了上述问题,我自己找到了解决方案。不确定它是最好的,但性能似乎还可以。
请注意:可以通过对 table“CommentDate
”进行排序来实现更简单的解决方案。根据问题输入,在这个用例中,这无法得到保证,也不是我们所期望的。
回顾:我们希望在 table TableView1
中添加对列“Number
”的最新评论,并从 TableComments1
中查找包含评论历史记录:
我从另一个 post 那里得到了使用辅助列来组合 2 个条件的想法。新 table 布局:
T.Number | Comment | CommentDate | Helper1
==============+==============+=============+===================
SCTASK0073347 | correction | 22/07/2018 | 43303SCTASK0073347
SCTASK0073347 | find this! | 25/07/2018 | 43306SCTASK0073347
SCTASK0073347 | update 2 | 21/07/2018 | 43302SCTASK0073347
TASK9999 | comment | 25/07/2018 | 43306TASK9999
公式细分
Helper 列的公式只是连接 2 列:
=[@CommentDate]&[@[T.Number]]
假设我们想要:SCTASK0073347
注意:在辅助列中我们有值“43306SCTASK0073347
”;
其中“43306
”是日期“25/07/2018
”的数字表示。
这将搜索“Number
”和 return 最近的“CommentDate
”的匹配项:
=MAXIFS(TableComments1[CommentDate];TableComments1[T.Number];TableView1[@Number])
返回“25/07/2018
”。让我们将上面的内容缩写为 <<MostRecentDate>>
以便下一步的可读性。
这一步,将在 Helper 列中搜索上述公式 <<MostRecentDate>>
& "Number
" 的组合:
=MATCH(<<MostRecentDate>>&TableView1[@Number];TableComments1[Helper1];0)
..returning 行号 (2
) 匹配助手 table 值“43306SCTASK0073347
”.
从现在开始,我们使用 MATCH
(现在 return 想要的行)和 INDEX
的样式 VLOOKUP 会做:
=INDEX(TableComments1[Comment];MATCH(<<MostRecentDate>>&TableView1[@Number];TableComments1[Helper1];0))
...return 使用所需注释“find this!
”编辑所需列。
Full/final 公式,包括 IFNA
函数以清除没有注释的空白查找:
=IFNA(INDEX(TableComments1[Comment];MATCH(MAXIFS(TableComments1[CommentDate];TableComments1[T.Number];TableView1[@Number])&TableView1[@Number];TableComments1[Helper1];0));"")
我正在使用 MAXIFS
(或类似的)来识别 table 中需要的行。但我不需要最大值,我需要来自相邻列的数据。示例:
=MAXIFS(TableComments1[CommentDate];TableComments1[T.Number];TableView1[@Number])
基本上,在这个例子中,我正在搜索行,匹配 "Number"
和最新日期。但在下一步中,我需要获取日期的行号,以便能够使用 INDEX
和 return 适当的列 (TableComments1[Comment]
)。
我尝试了不同的方法 - 没有成功。 PS:性能在这里也很重要。
更新,示例查找 table:"TableComments1"
T.Number | Comment | CommentDate
==============+==============+===========
SCTASK0073347 | correction | 22/07/2018
SCTASK0073347 | update 11 | 25/07/2018
SCTASK0073347 | update 2 | 21/07/2018
PS:排序 "CommentDate"
不是这里的选项。
经过几天的尝试,终于 post 解决了上述问题,我自己找到了解决方案。不确定它是最好的,但性能似乎还可以。
请注意:可以通过对 table“CommentDate
”进行排序来实现更简单的解决方案。根据问题输入,在这个用例中,这无法得到保证,也不是我们所期望的。
回顾:我们希望在 table TableView1
中添加对列“Number
”的最新评论,并从 TableComments1
中查找包含评论历史记录:
我从另一个 post 那里得到了使用辅助列来组合 2 个条件的想法。新 table 布局:
T.Number | Comment | CommentDate | Helper1
==============+==============+=============+===================
SCTASK0073347 | correction | 22/07/2018 | 43303SCTASK0073347
SCTASK0073347 | find this! | 25/07/2018 | 43306SCTASK0073347
SCTASK0073347 | update 2 | 21/07/2018 | 43302SCTASK0073347
TASK9999 | comment | 25/07/2018 | 43306TASK9999
公式细分
Helper 列的公式只是连接 2 列:
=[@CommentDate]&[@[T.Number]]
假设我们想要:SCTASK0073347
注意:在辅助列中我们有值“43306SCTASK0073347
”;
其中“43306
”是日期“25/07/2018
”的数字表示。
这将搜索“Number
”和 return 最近的“CommentDate
”的匹配项:
=MAXIFS(TableComments1[CommentDate];TableComments1[T.Number];TableView1[@Number])
返回“25/07/2018
”。让我们将上面的内容缩写为 <<MostRecentDate>>
以便下一步的可读性。
这一步,将在 Helper 列中搜索上述公式 <<MostRecentDate>>
& "Number
" 的组合:
=MATCH(<<MostRecentDate>>&TableView1[@Number];TableComments1[Helper1];0)
..returning 行号 (2
) 匹配助手 table 值“43306SCTASK0073347
”.
从现在开始,我们使用 MATCH
(现在 return 想要的行)和 INDEX
的样式 VLOOKUP 会做:
=INDEX(TableComments1[Comment];MATCH(<<MostRecentDate>>&TableView1[@Number];TableComments1[Helper1];0))
...return 使用所需注释“find this!
”编辑所需列。
Full/final 公式,包括 IFNA
函数以清除没有注释的空白查找:
=IFNA(INDEX(TableComments1[Comment];MATCH(MAXIFS(TableComments1[CommentDate];TableComments1[T.Number];TableView1[@Number])&TableView1[@Number];TableComments1[Helper1];0));"")