如何将Excel值转换为存储桶?

问题描述 投票:8回答:11

我在Excel中有一组数据,在一列中是估计值(周数)

我想要一个Excel公式来将其存入

  • 介质

如果值为0 - 10,则将其设置为小。如果值为10 - 20则将其置于“中等”等。 。 。

如果除了嵌套if语句之外还有任何优雅的方法吗?

excel function
11个回答
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

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)

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个观测值。几乎是平等的。你不必担心 - 这个公式适合你。


12
投票

正确的工具是创建一个包含限制和相应名称的范围。然后,您可以使用vlookup()函数,将第4个参数设置为Trueto,创建范围查找。

enter image description here


7
投票

创建它的另一种方法是使用if条件...意味着你将引用一个具有值的单元格,并且根据该值它将为你提供诸如small之类的存储桶。

例如,=if(b2>30,"large",if(b2>20,"medium",if(b2>=10,"small",if(b2<10,"tiny",""))))

因此,如果单元格b2的值为12,那么它将返回单词small

希望这是你正在寻找的。


6
投票

如果您需要做的只是计算每个类别中有多少值,那么这是一个经典的统计问题,可以通过“直方图”非常优雅地解决。

在Excel中,您使用数据分析加载项(如果您还没有,请参阅下面的链接)。一旦理解了直方图,就可以将数据分成桶 - 称为“箱” - 非常快速,轻松调整箱子,并自动绘制数据图表。

这是三个简单的步骤:1)将数据放在一列中2)为您的箱子创建一个列(10,20,30等)3)选择数据 - >数据分析 - >直方图并按照说明进行选择数据范围和分档(您可以将结果放入新工作表并从同一菜单中绘制结果图表)

http://office.microsoft.com/en-us/excel-help/create-a-histogram-HP001098364.aspx


5
投票

您正在寻找LOOKUP功能。有关详细信息,请参阅以下页面:

Data Buckets (in a range)


4
投票

创建存储桶的一个好方法是LOOKUP()函数。

在此示例中,包含单元格A1是天数。第二个参数是值列表。第三个参数是存储桶名称列表。

= LOOKUP(A1,{0,7,14,31,90,180,360},{ “0-6”, “7-13”, “14-30”, “31-89”, “90-179”,“180 -359" , “> 360”})


3
投票

这是一个解决方案:

  • 是自足的
  • 不需要VBA
  • 关于铲斗最大值,不限于与IF相同的方式
  • 不像LOOKUP那样需要精确的值

=INDEX({"Small","Medium","Large"},LARGE(IF([INPUT_VALUE]>{0,11,21},{1,2,3}),1))

将[INPUT_VALUE]替换为相应的单元格引用,并确保按Ctrl + Shift + Enter,因为这是一个数组公式。

每个数组常量可以扩展为任意长;只要公式不超过Excel的最大值为8,192个字符。第一个常量应该包含返回值,第二个常量应该包含有序阈值,第三个常量应该只是升序整数。


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

只需将值和文本替换为小,中,大。


0
投票

如果条件是最好的方法。如果你想要计数使用桶的数据透视表。这是最简单的方法,if条件也可以超过5-6个桶

© www.soinside.com 2019 - 2024. All rights reserved.