Excel最小值取决于分组数据

Race Name Location Race Date Odds Minimum Race 1 Jackson 2015-06-29 4.6 Race 1 Jackson 2015-06-29 2.2 2.2 Race 1 Jackson 2015-06-29 26 Race 1 Jackson 2015-06-29 9.5 Race 2 Jackson 2015-06-29 8 Race 2 Jackson 2015-06-29 2.8 2.8 Race 2 Jackson 2015-06-29 26 Race 2 Jackson 2015-06-29 21 Race 3 Jackson 2015-06-29 5.5 Race 3 Jackson 2015-06-29 3.2 3.2 Race 3 Jackson 2015-06-29 17 

我能find的最接近的东西就是在前一个问题中。 Excel:find范围内的最小值

但我在这里努力实现这一点。

我想查找每场比赛的最低赔率,取决于地点,比赛date和比赛名称。 由于2015-06-29在不同的地点有很多“第一场比赛”。 所以我猜猜可能是一种方法,使数组依赖于单元格?

期望的输出将具有写在相应行旁边的每个竞赛的最小值。

我怀疑这可能是我需要在VBA中做的事情?

任何帮助将不胜感激。

有一个简单的方法来做你的build议。 你想要做的是形成一个独特的种族,数字,位置和date的关键。 最快的方法是在前面插入一列,然后执行以下操作:

 Key =B2&C2&D2&E2 

这会给你:

 Race1Jackson42184 # This is just the date code. It increments by one for each day. 

现在你要做的是在Column AOdds列上按Ascending Order排列。

您现在可以将此公式input到最小值:

 =IF(F3>F2,"",F3) 

这会给你每场比赛的最低限度。

你可以嵌套你的if语句,以确保一个种族没有与所有的collections夹和一个所有长镜头和testing,以确保比较是相同的种族,但这种工作相当有效,没有VBA或凌乱的公式你将需要debugging。

如果您需要保留与原始订单相同的数据,请将数据复制到新工作表中,执行sorting,然后创build添加赔率列的新密钥。

 =B2&C2&D2&E2&F2 

从那里你可以做一个从原始工作表到新的工作表,并作为数据表中的每一行现在将有一个唯一的ID然后,该查找将findIf公式的值,你会得到你的原sorting。

该公式与您提供的链接中的公式相似。 只是更多的标准。 相应地调整范围。 您将需要通过按CTRL + SHIFT + ENTERinput此公式。

 =IF(MIN(IF($A$2:$A$20=A2,IF($B$2:$B$20=B2,IF($C$2:$C$20=C2,$D$2:$D$20))))=D2,MIN(IF($A$2:$A$20=A2,IF($B$2:$B$20=B2,IF($C$2:$C$20=C2,$D$2:$D$20)))),"") 

简单。 你只需要创build一个数据透视表。 然后将RaceName字段添加到行标签。 最后,你只需要将赔率字段添加到值。 然后configurationOdds值点击黑色的小箭头,select“Value field settings”,然后在“Summarize value field by by”选项卡中select“Min”。