从多个选择中返回最高值

时间:2017-06-22 18:49:56

标签: excel excel-vba excel-formula vba

我有一个如下所示的数据表:

enter image description here

根据这些数据,我想制作一张如下所示的表格:

enter image description here

那么我怎么做到第二张照片呢?

  • 在第一张图片的数据中,我搜索了具有相同前6个数字的6个+数字的所有Numbers。这给了我们2个结果,445566存在3次,112233存在2次。
  • 从那里我想找到每个结果的最高百分比,那么445566%存储中的最高优势是10%。
  • 为每个商店执行此操作后,每个商店的每个商店都会获得一行,每个商店的所有商品的百分比最高。

您可以想象,手动完成此操作非常耗时。我想知道是否有人知道如何加快速度。我想过尝试使用Vlookup / VBA,但是我不太了解这些主题来解决这个问题(Vlookup的基本知识和几乎不存在的VBA知识)。我想知道你们中是否有人可以向我发送正确的方向,或者有任何想法可以让这个过程变得更容易。

提前致谢

编辑:数据图片1的链接:https://drive.google.com/open?id=0By2vDlsDCzUoZ1BocV9qVjQ4bzg

3 个答案:

答案 0 :(得分:2)

您可以使用:

=MAX(IF(ISNUMBER(FIND($A8,$A$2:$A$6)),B$2:B$6,0%))

数组公式按 Ctrl + Shift + 输入而不是输入
并将其向下拖动并在同一行中 首先创建从A8开始的6位数的列,例如
A2:A8数字栏
B2:B6%存储
更改它以对应第一个表中的数据 保留$ for fixed references以便改变正确的方式

答案 1 :(得分:2)

将以下公式放入cel H2中。使用 Ctrl + Shift + 输入并复制。

=IFERROR(INDEX(LEFT($A$2:$A$100,6), MATCH(0,COUNTIF($H$1:H1, LEFT($A$2:$A$100,6)), 0)),"")

这将为您提供唯一的6位数字。

然后将下一个公式放在单元格I2中使用 Ctrl + Shift + 再次输入。向下复制到右边。

=MAX(IF(LEFT($A$2:$A$100,6)=$H2,B$2:B$100))

第二个公式将提供每个商店的每个唯一编号的最大百分比。

答案 2 :(得分:1)

在H2:J2中提供的图像,

ArrayList<String> list = Arrays.asList(str.split(":"));

根据需要填写。添加IFERROR包装器以避免在用尽匹配时出现错误代码。

enter image description here