在 Google 个工作表中获取各个范围内的最低最大值

Get lowest maximum value across various ranges in Google Sheets

我正在做一些娱乐性的数据分析,在花了一天时间学习如何使用 VLOOKUP() 之后,我遇到了瓶颈,我认为我无法通过谷歌搜索解决问题。我有一堆想法的数据集,链接到我想与之一起做的人,一堆与他们相关的名字,以及想法的主题。我一直在做一些有趣的事情,比如每个主题有多少想法,一个人的想法有多少是关于给定主题的,以及一个主题的想法有多少是与给定的人有关的。我也一直在计算整个 sheet 的一些统计数据:总想法,每个人的平均想法,每个主题的平均想法,谁拥有最大的“主题垄断”,任何看起来有趣的东西。

我想知道谁拥有最多样化的主题,我想通过检查谁的“主题关注度”最低(一个人的想法中有多少是给定的主题)来表明这一点.我知道如何使用 javascript 或 python 来做到这一点:我想 运行 通过所有“主题焦点”值,将它们按人划分,并丢弃除最高 per-person。然后我比较这些“最大主题焦点”中的每一个,并挑选出最低的,并显示相关的名称。

尽管我脑子里很清楚,但我不知道如何在 Google 表格中真正开始这样做。有什么建议吗?有人做过类似的手术吗?

编辑:所以我最接近的是创建一个新列,其中填充公式 =if(MAX(FILTER(G:G, A:A=A3)) = 0, "", MAX(FILTER(G:G, A:A=A3))),其中 G:G 是我拥有给定人的“主题焦点”的地方, A:A 是人名(它从 A3 开始,因为第 1 行和第 2 行是 header)。然后,为了显示统计数据,我只有 =CONCATENATE("Most diverse idea list: ", VLOOKUP(MIN(J3:J), {J3:J,A3:A}, 2, FALSE), " (", TEXT(ROUND(MIN(J3:J) * 100, 2), "#.00"), "% max focus)"),其中 J:J 是我添加的新列。它有效,但显然这非常混乱,如果有一种方法可以做到这一点而无需为数据存储创建一个全新的列,那将是更可取的。

编辑 2:Here's 我正在使用的 sheet 的一般模型,因为我不想直接分享它。

使用 query() 获取 G 中的最大值,按列 A 中的名称分组,并将其包装在另一个 query() 中以获得第一个结果.将此公式放入单元格 N1:

=query( 
  query( 
    A1:H, 
    "select A, max(G) 
     where A is not null 
     and G is not null 
     group by A", 
    1 
  ), 
  "order by Col2 asc 
   limit 1", 
  1 
)

...单元格 I16 中的公式:

="Most diverse idea list: " & N2 & " (" & text(O2, "#.00%") & " max focus)"

要查看其工作原理,请尝试将此公式放入单元格 K1:

=query( 
  A1:H, 
  "select A, max(G) 
   where A is not null 
   and G is not null 
   group by A", 
  1 
)

如果您需要将这些结果放入每个名称的 J 列,请将此公式放入单元格 J3:

=arrayformula( 
  iferror( 
    vlookup( 
      A3:A, 
      K2:L, 
      columns(K2:L), 
      false 
    ) 
  ) 
)

这是一个一次性填满整列的数组公式,因此您必须在插入公式之前清除 J3:J 列,以便为结果腾出空间。

要将前两个公式放在一起以便不需要辅助列,请使用:

="Most diverse idea list: " & 
join( " (", 
  query( 
    query( 
      A2:H, 
      "select A, max(G) 
       where A is not null 
       and G is not null 
       group by A 
       label max(G) '' 
       format max(G) '0.00%' ", 
      0 
    ), 
    "order by Col2 asc 
     limit 1", 
    0 
  ) 
) & " max focus)"