Excel最小值取决于分组数据

时间:2015-07-15 06:53:28

标签: excel if-statement excel-formula minimum lookup-tables

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  

我能找到的最接近的是前一个问题。 Excel: find the minimum value in range

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

我想找到每场比赛的最低赔率,具体取决于位置,比赛日期和比赛名称。因为有很多比赛1' on' 2015-06-29'有不同的位置。所以我猜测可能是一种制作依赖于细胞分组的阵列的方法吗?

所需的输出将在相应的行旁边写下每个种族的最小值。

我怀疑这可能是我需要在VBA中制作的东西吗?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

有一种简单的方法可以做你的建议。你想要做的是形成种族,数字,位置和日期的唯一键。最快的方法是在前面插入一列然后执行此操作:

Key
=B2&C2&D2&E2

那会给你:

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

现在,您要对Ascending OrderColumn A列上的Odds进行排序。

您现在可以将此公式输入最小值:

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

这将为您提供每场比赛的最低要求。

你可以嵌套你的if语句,以确保一场比赛没有与所有的最爱和一个所有的长镜头一起进行测试,以确保比较是针对同一场比赛,但是如果没有VBA,这种效果非常有效或者需要调试的混乱公式。

如果您需要保持订单与原始订单相同,请将数据复制到新工作表,执行排序,然后创建一个添加了赔率列的新密钥。

=B2&C2&D2&E2&F2

从那里你可以从原始工作表到新工作表执行vlookup,并且由于数据表中的每一行现在都有一个唯一的id,然后vlookup将找到If公式的值,你将进入与您的原始订购。

答案 1 :(得分:0)

该公式类似于您提供的链接中的公式。只是几个标准。相应地调整范围。您需要按CTRL + SHIFT + ENTER输入此公式。

=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)))),"")

答案 2 :(得分:0)

简单。您只需要创建数据透视表。然后将RaceName字段添加到Row标签。最后,您只需将赔率字段添加到值。然后在黑色小箭头中单击Odds值并选择" Value field settings"然后选择" Min"在" Summarize value字段中"标签