如果Col B中的“代码”是唯一的,我如何找到与每个唯一的“名称”相关联的最常见的“代码”(Col B),并找到最接近的值?
下面的图像显示了在A&B列中具有起始数据的共享谷歌单张,以及C和D列中所需的输出列。每个唯一的名称都有相关的代码。列D显示每个唯一名称最常见的代码。例如,Buick 1在B3、B4、B5中有3个相关联的代码,但在D3中只有98761,因为它看起来比B2中的其他2个代码更频繁。我将解释下面最接近的值是什么意思。
具有count =1的代码是唯一的,因此D列中的输出试图找到最接近的匹配。
但是,当B2:B中的代码计数>1时,则D列中的输出将变为与名称关联的最频繁的代码。

当B列中有2个或更多相同值时,方法
我想我可能会以类似于这个工作方程的方式使用ORDER BY count(B) DESC LIMIT 2查询:
QUERY($A$1:$D$25,"SELECT A, B ORDER BY B DESC Limit 2",1)但是当我在计数函数中替换它时,我无法让它工作。
如果查询函数不能正常工作,那么我认为另一种方法可能是在按降序排序列B之后组合一个Vlookup/Index。
UNIQUE(sort($B$3:$B,if(len($B$3:$B),countif($B$3:$B,$B$3:$B),),0,1,1))因为使用多个标准的Vlookup或Index只会提取它找到的第一个值,所以您将得到第一个匹配值,然后我们将得到最频繁的值。
方法--当B列中有<2个相同的值时,这个方法要复杂一些,因为值可以是数字和字母。
如下图所示,如果一切都是数字,就可以使用这样的解决方案。在我们的例子中,通常会有3-5个字符的字母数字代码,开头是0-1字母,数字之后是数字。我不确定与A1234这样的代码匹配的最佳方法是什么。我想一个解决方案可能是拆分字母,并尝试首先匹配这些字母。例如,A1234将被拆分为A= 1234,然后匹配最近的字母,然后匹配最近的数字。但我真的不确定,在Google的约束下,什么才是最好的解决方案。

如果一个数字在两个数字之间等距,则应选择较低的数字。例如,如果8是数字,最接近的匹配将是6或10,那么应该选择6。
如果一封信被使用,它应该以类似的方式工作。例如,认为{A,B,C}为{1,2,3},B应该优先匹配A,因为它在C之前。
总之,寻找一种方法来查找在这张纸中与头A中唯一名称相关联的col中最频繁关联的代码,以及在B2:B中没有相同代码的情况下,查找与数字或字母数字代码最接近的匹配的公式。
发布于 2022-05-17 21:01:45
用途:
=ARRAY_CONSTRAIN(SORTN(QUERY({A3:B},
"select Col1,Col2,count(Col2)
where Col1 is not null
group by Col1,Col2
order by count(Col2) desc,Col2 asc
label count(Col2)''"), 9^9, 2, 1, 1), 9^9, 2)

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