我在Excel中有一组数据,在一列中是一个估计值(周数)
我想要一个Excel公式将其存入
如果值为0-10,则将其设为Small。如果值为10 - 20则将其置于“中等”等。 。
如果除了嵌套if语句之外还有任何优雅的方法吗?
答案 0 :(得分:13)
答案 1 :(得分:7)
创建此方法的另一种方法是使用if
条件...意味着您将引用具有值的单元格,并根据该值为您提供诸如small
之类的存储区。
例如,=if(b2>30,"large",if(b2>20,"medium",if(b2>=10,"small",if(b2<10,"tiny",""))))
因此,如果单元格b2
的值为12
,则会返回单词small
。
希望这就是你要找的东西。
答案 2 :(得分:6)
如果您需要做的只是计数每个类别中有多少值,那么这是一个经典的统计问题,可以通过“直方图”非常优雅地解决。
在Excel中,您使用数据分析加载项(如果您还没有,请参阅下面的链接)。一旦理解了直方图,就可以将数据分成桶 - 称为“箱” - 非常快速,可以轻松调整箱子,并自动绘制数据图表。
这是三个简单的步骤: 1)将您的数据放在一列中 2)为您的垃圾箱创建一个列(10,20,30等) 3)选择数据 - &gt;数据分析 - &gt;直方图并按照选择数据范围和分档的说明进行操作(您可以将结果放入新工作表并从同一菜单中绘制结果图表)
http://office.microsoft.com/en-us/excel-help/create-a-histogram-HP001098364.aspx
答案 3 :(得分:5)
可能不是你想要的但是如何使用Excel的条件格式化功能
编辑: 作为替代方案,您可以创建一个vba函数,该函数充当将为您执行计算的公式。
之类的东西Function getBucket(rng As Range) As String
Dim strReturn As String
Select Case rng.Value
Case 0 to 10
strReturn = "Small"
Case 11 To 20
strReturn = "Medium"
Case 21 To 30
strReturn = "Large"
Case 31 To 40
strReturn = "Huge"
Case Else
strReturn = "OMG!!!"
End Select
getBucket = strReturn
End Function
答案 4 :(得分:5)
您正在寻找LOOKUP功能。有关详细信息,请参阅以下页面:
答案 5 :(得分:4)
创建存储桶的一个好方法是LOOKUP()函数。
在此示例中,包含单元格A1是天数。第二个参数是值列表。第三个参数是存储桶名称列表。
= LOOKUP(A1,{0,7,14,31,90,180,360},{ “0-6”, “7-13”, “14-30”, “31-89”, “90-179” , “180-359”, “&GT; 360”})
答案 6 :(得分:3)
这是一个解决方案:
=INDEX({"Small","Medium","Large"},LARGE(IF([INPUT_VALUE]>{0,11,21},{1,2,3}),1))
将 [INPUT_VALUE] 替换为相应的单元格引用,并确保按 Ctrl + Shift + Enter ,因为这是一个数组公式。
每个数组常量可以扩展为任意长;只要公式不超过Excel的最大值为8,192个字符。第一个常量应该包含返回值,第二个常量应该包含有序阈值,第三个常量应该只是升序整数。
答案 7 :(得分:2)
也许这可以帮到你:
=IF(N6<10,"0-10",IF(N6<20,"10-20",IF(N6<30,"20-30",IF(N6<40,"30-40",IF(N6<50,"40-50")))))
只需将值和文本替换为小,中,大。
答案 8 :(得分:0)
如果条件是最佳方式。如果你想要计数使用桶的数据透视表。这是最简单的方法,if条件也可以超过5-6个桶
答案 9 :(得分:0)
我更喜欢使用数字公式标记存储桶。如果铲斗尺寸为10,则标记铲斗0,1,2,...
=INT(A1/10)
如果您将铲斗尺寸10放在一个单独的单元格中,您可以轻松改变它。
如果单元格B1包含存储桶(0,1,2,...),而第6列包含名称“低”,“中”,“高”,则此公式会将存储桶转换为名称:
=INDIRECT(ADDRESS(1+B1,6))
或者,这会标记集合中值最小的桶,即0,10,20,...
=10*INT(A1/10)
或者用0-10,10-20,20-30范围标记它们,......
=10*INT(A1/10) & "-" & (10*INT(A1/10)+10)
答案 10 :(得分:0)
我使用此技巧进行相等的数据存储。您会得到数字,而不是文本结果。这是四个水桶的例子。假设您的数据在A1:A100
范围内。将此公式放在B1中:
=MAX(ROUNDUP(PERCENTRANK($A$1:$A$100,A1) *4,0),1)
在B列中全部填写公式即可。该公式将范围分为4个相等的存储区,并返回单元格A1所属的存储区编号。第一个存储区包含最低25%的值。
根据您的意愿调整水桶数量:
=MAX(ROUNDUP(PERCENTRANK([Range],[OneCellOfTheRangeToTest]) *[NumberOfBuckets],0),1)
每个存储桶中的观察次数将相等或几乎相等。例如,如果您有100个观测值,并且想要将其拆分为3个存储桶(如您的示例中所示),则存储桶将包含33、33、34个观测值。因此几乎相等。您不必担心-该公式可以为您解决问题。
答案 11 :(得分:0)
我使用附加的公式将销售数字分类到bin范围内/之内,如下所示:
=IF(MOD(B5,$B$1)<>0,($B$1*(1+((B5-(MOD(B5,$B$1)))/$B$1))),($B$1*(1+((B5-(MOD(B5,$B$1)))/$B$1))-$B$1))
此处的单元格如示例所示