首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google工作表中两列列表中最常见的“分母”

Google工作表中两列列表中最常见的“分母”
EN

Stack Overflow用户
提问于 2022-05-16 23:46:31
回答 1查看 35关注 0票数 0

如果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个或更多相同值时,方法

  1. 查询

我想我可能会以类似于这个工作方程的方式使用ORDER BY count(B) DESC LIMIT 2查询:

代码语言:javascript
复制
QUERY($A$1:$D$25,"SELECT A, B ORDER BY B DESC Limit 2",1)

但是当我在计数函数中替换它时,我无法让它工作。

  1. 排序和索引或VLOOKUP

如果查询函数不能正常工作,那么我认为另一种方法可能是在按降序排序列B之后组合一个Vlookup/Index。

代码语言:javascript
复制
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中没有相同代码的情况下,查找与数字或字母数字代码最接近的匹配的公式。

EN

回答 1

Stack Overflow用户

发布于 2022-05-17 21:01:45

用途:

代码语言:javascript
复制
=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)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72266730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档