libreoffice calc分组价格范围

时间:2014-04-13 02:06:19

标签: openoffice-calc libreoffice-calc

我正在尝试从.ods文件中组合一些价格范围,但不知道该怎么做。

例如。我有一个不同价格的专栏:

11,61
6,15
13,68
7,69
6,00

我想要的是告诉calc将所有内容从0,00~10,99和输出文本0-10分组,每次从11,00~20,00和输出文本11-20

所以最终的输出是

col1    col2
11,61   11-20
6,15    0-10
13,68   11-20
7,69    0-10
6,00    0-10

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用带有负数的ROUNDDOWN()ROUNDUP()函数来获得10的下一个倍数(-1),100(-2)或1000({ {1}})。它以-3的平方降低某个值的准确度。因此,使用以下方法舍入到上一个或下一个10的倍数:

  

10

  

=ROUNDDOWN(<yourvalue>; -1)

分别(注意使公式参数分隔符适应逗号(=ROUNDUP(<yourvalue>; -1)),如果这是您使用所需的。)

因此,,会产生=ROUNDDOWN(11,61; -1),而10会产生=ROUNDUP(11,61; -1)。通过这种方式,您可以&#34;计算&#34;每个值的适当组(A1中值的示例):

  

20

将其拆分为多行:

=CONCATENATE(ROUNDDOWN($A1; -1)+1;"-";ROUNDUP($A1;-1))

使用您的示例数据,结果如下:

enter image description here

编辑:

对于分组0-9,9-19等,以下公式应该有效:

  

=CONCATENATE( # Result will be a concatenated string ROUNDDOWN($A1;-1)+1; # first value: previous multiple of 10, +1; "-"; # second value: literal "-" ROUNDUP($A1;-1) # third value: next multiple of 10 )

enter image description here

EDIT2:

对于使用IF()功能的解决方案,您可以使用:

  

=CONCATENATE(ABS(ROUNDDOWN($A2+1; -1)-1);"-";ROUNDUP($A2+1,01;-1)-1)

对于大于29的值的分组,您必须根据IF子句添加,以通过其他检查替换字符串=IF(A2 < 9;"0-9";IF(A2 < 19; "9-19";IF(A2 < 29; "19-29";"more than 29")))。每个分组范围都需要自己的IF子句。