我有一个数组公式工作,但它是缓慢的计算,我怀疑它是最有效的方式来做到这一点。为了简化这个问题,假设A列是“位置”,B列是" person ",我想确定,对于指定的位置,与该位置相关联的人,以及与任何位置(即所有地点)关联最频繁的第n个人。为了帮助我的公式,我为每一个条目定义了C列,作为B列中人员的COUNT (即,它等于该行中人员的关联总数)。
使用IF ( A = TargetPerson, C)生成一个数组,它是false,A不是TargetPerson,如果它是TargetPerson,则是计数(C)。
取上面的MAX。
使用MATCH查找上面确定的最大值,其中查找范围是在上面的第一步中计算出来的相同数组。
使用INDEX返回匹配行的B列。
这方面的问题:
LARGE来代替MAX,但是如果你有两个同样频繁发生的个体,它就会崩溃--在这种情况下,我希望能够基于alpha类型返回它们。例如,。
感谢你给我的小费。
被要求提供可重复的例子。不知道如何通过这个提供数据..。
数据:
A B C = count of person B for the full column B
Location Person
New York Luke Skywalker
New York Darth Vader
New York Carrie Fisher
London Carrie Fisher
Cairo Mark Hammill
Dublin Mark Hammill
Sydney Mark Hammill
Melbourne Carrie FisherSheet2中的公式,该公式包含每个唯一位置的行(col ),并试图返回与该位置关联的人,该人也经常与任何位置相关联(在col中):
=INDEX(Sheet1!$B$2:$B$9,MATCH(MAX(IF(Sheet1!$A$2:$A$9=Sheet2!A4,Sheet1!$C$2:$C$9)),IF(Sheet1!$A$2:$A$9=Sheet2!A4,Sheet1!$C$2:$C$9),0),1)发布于 2021-02-25 21:52:01
您可以作为一个相当快的函数来完成它,但是您需要将一个中间结果停在某个地方。由于某些原因,我不能将FILTER的结果传递给第二个FILTER
所以我把第一个FILTER放到E5中,然后把它传递到第二个过滤器中。
E5
=FILTER(A5:C12, A5:A12=$B$1)和
I5
=FILTER(E5#, G5:G7=LARGE(OFFSET(E5#, 0, 2, COUNTIF(A5:A12, B1), 1), B2))步骤如下:
基于location
offset识别第n大列的值,用户使用LARGE确定第n大的值,用户根据与第n大的相关联的值确定中间数组

https://stackoverflow.com/questions/66375897
复制相似问题