finereport 常用函数

Finereport是一款功能强大、易于使用的企业级报表工具,支持多种数据源和多种图表类型,并支持自定义函数和脚本。以下是Finereport报表制作中常用的函数及使用示例。

  1. AGGREGATE:用于将集合中的数据重新计算。语法:AGGREGATE(type, operation, field),其中type为计算类型(如求和、平均、最大值等),operation为操作类型(如忽略错误、排除隐藏行等),field为要进行计算操作的数据集字段。例如:AGGREGATE(1, 3, sales),表示对“sales”字段进行求和操作,且忽略错误和排除隐藏行。

  2. AND:用于在多个条件都为真时返回真值。语法:AND(condition1, condition2, …),其中condition1、condition2等为要判断的条件。例如:AND(Sales > 1000, Quantity > 10),表示当销售额大于1000且销售数量大于10时,返回真值。

  3. AVERAGE:求平均数(不包括空值)。语法:AVERAGE(field),其中field为要进行平均操作的数据集字段。例如:AVERAGE(Sales),表示求“Sales”字段的平均值。

  4. CHOOSE:多路分支函数。语法:CHOOSE(index, value1, value2, …),其中index为索引值,value1、value2等为不同索引值对应的值。例如:CHOOSE(grade, “优秀”, “良好”, “中等”, “及格”, “不及格”),表示当成绩为1时返回“优秀”,2时返回“良好”,以此类推。

  5. CONCATENATE:用于将指定的字符串连接在一起。语法:CONCATENATE(string1, string2, …),其中string1、string2等为要进行连接的字符串。例如:CONCATENATE(last_name, “, ”, first_name),表示将“last_name”字段和“first_name”字段通过逗号连接在一起。

  6. COUNT:计算数据集中的行数(不包括空值)。语法:COUNT(field),其中field为要进行计算的数据集字段。例如:COUNT(Product),表示计算“Product”字段中有多少个非空值。

  7. DATE:将年、月、日组合成日期。语法:DATE(year, month, day),其中year、month、day分别为年、月、日。例如:DATE(2017,1,1)表示2017年1月1日。

  8. DATEPART:获取日期的年、月、日等部分。语法:DATEPART(field, part),其中field为要获取日期部分的数据集字段,part为要获取的日期部分(如year表示年份,month表示月份)。例如:DATEPART(sale_date, “year”),表示获取销售日期的年份。

  9. DATEDIFF:计算两个日期之间的时间差。语法:DATEDIFF(part, start_date, end_date),其中part为要计算的时间单位(如day表示天数,hour表示小时数),start_date和end_date为要计算时间差的两个日期。例如:DATEDIFF(“day”, start_date, end_date),表示计算开始日期和结束日期之间的天数差。

  10. DAY:获取日期的日份。语法:DAY(date),其中date为要获取日份的数据集字段。例如:DAY(sale_date),表示获取销售日期的日份。

  11. DECODE:类似于IF函数,用于判断并返回相应的值。语法:DECODE(value, condition1, result1, condition2, result2,… default),其中value为要进行判断的值,condition1、condition2等为判断条件,result1、result2等为相应条件下要返回的结果,default为默认返回结果。例如:DECODE(sales, 100, “A”, 200, “B”, “C”),表示如果销售额等于100,则返回“A”,等于200返回“B”,否则返回“C”。

  12. EXP:计算以e为底数的指数函数。语法:EXP(x),其中x为指数。例如:EXP(2),表示计算 e 的 2 次方。

  13. FIND:查找一个字符串在另一个字符串中的位置。语法:FIND(search_string, target_string, start_pos),其中search_string为要查找的字符串,target_string为目标字符串,start_pos为开始查找的位置。例如:FIND(“abc”, “abcdefg”, 2),表示在第2个位置后开始查找"abcdefg"中的"abc"字符串。

  14. FLOOR:将数字向下舍入为最接近的整数。语法:FLOOR(number),其中number为要进行舍入操作的数字。例如:FLOOR(3.6),表示将3.6向下舍入为3。

  15. FORMAT:将数字格式化为特定的样式。语法:FORMAT(value, format),其中value为要进行格式化的数字,format为数字格式化的样式。例如:FORMAT(sales, “#,##0.00”),表示将“sales”字段格式化为以逗号分隔的千位数,并保留两位小数。

  16. GROUPCONCAT:将多个字符串连接成一个字符串,并用指定的分隔符分隔。语法:GROUPCONCAT(expr separator),其中expr为要进行连接的字符串,separator为指定的分隔符。例如:GROUPCONCAT(bank_name SEPARATOR ‘,’),表示将bank_name字段中的所有值用逗号连接在一起。

  17. HLOOKUP:在表格中查找指定值并返回所在行的相应值。语法:HLOOKUP(lookup_value, table_array, row_index_num),其中lookup_value为要查找的值,table_array为目标表格区域,row_index_num为返回结果所在行数。例如:HLOOKUP(“Apples”, A1:B4, 3),表示查找“A1:B4”区域中包含“Apples”的单元格所在的第3行,并返回该行的数据。

  18. IF:条件判断函数。语法:IF(condition, value1, value2),其中condition为判断条件,value1为满足条件后返回的值,value2为不满足条件后返回的值。例如:IF(sales > 1000, “优秀”, “一般”),表示如果销售额大于1000则返回“优秀”,否则返回“一般”。

  19. INDEX:返回表格中指定单元格的值或引用。语法:INDEX(table_array, row_num, [column_num]),其中table_array为目标表格区域,row_num为所在行号,column_num为所在列号(可选)。例如:INDEX(A1:B4, 3, 2),表示返回“A1:B4”区域中第3行第2列的值。

  20. INT:将数字向下取整到最接近的整数。语法:INT(number),其中number为要进行取整操作的数字。例如:INT(3.6),表示将3.6向下取整为3。

  21. ISNULL:用于判断一个值是否为空。语法:ISNULL(expression),其中expression为要判断的值。例如:ISNULL(employee_name),表示判断“employee_name”字段是否为空。

  22. LEFT:从左边开始截取指定长度的字符。语法:LEFT(string, length),其中string为要进行截取的字符串,length为要截取的长度。例如:LEFT(employee_name, 3),表示截取“employee_name”字段左边的3个字符。

  23. LEN:获取字符串长度。语法:LEN(string),其中string为要获取长度的字符串。例如:LEN(employee_name),表示获取“employee_name”字段的长度。

  24. LOG:计算以特定底数的对数。语法:LOG(base, number),其中base为对数的底数,number为对数。例如:LOG(10, 100),表示计算以10为底数的100的对数。

  25. LOWER:将字符串转换为小写。语法:LOWER(string),其中string为要转换为小写的字符串。例如:LOWER(employee_name),表示将“employee_name”字段转换为小写。

  26. MAX:获取数值列中的最大值。语法:MAX(field),其中field为要进行计算的数据集字段。例如:MAX(sales),表示获取“sales”字段中的最大值。

  27. MID:从指定位置开始返回指定长度的字符。语法:MID(string, start, length),其中string为要进行截取的字符串,start为起始位置,length为要截取的长度。例如:MID(employee_name, 2, 3),表示从“employee_name”字段的第2个字符开始截取3个字符。

  28. MIN:获取数值列中的最小值。语法:MIN(field),其中field为要进行计算的数据集字段。例如:MIN(sales),表示获取“sales”字段中的最小值。

  29. MOD:获取两个数相除的余数。语法:MOD(number1, number2),其中number1和number2分别为要进行计算的两个数。例如:MOD(10, 3),表示10除以3的余数。

  30. MONTH:获取日期的月份。语法:MONTH(date),其中date为要获取月份的数据集字段。例如:MONTH(sale_date),表示获取销售日期的月份。

  31. NOW:获取当前的日期和时间。语法:NOW()。例如:NOW(),表示获取当前日期和时间。

  32. OR:用于在多个条件中只要有一个条件为真就返回真值。语法:OR(condition1, condition2, …),其中condition1、condition2等为要判断的条件。例如:OR(Sales > 1000, Quantity > 10),表示当销售额大于1000或销售数量大于10时,返回真值。

  33. PI:获取圆周率π的值。语法:PI()。例如:PI(),表示获取π的值。

  34. POWER:计算数值的指数幂。语法:POWER(number, power),其中number为要进行计算的数值,power为指数。例如:POWER(2, 3),表示计算2的3次方。

  35. RAND:生成一个0-1之间的随机数。语法:RAND()。例如:RAND(),表示生成一个0-1之间的随机数。

  36. REPLACE:将字符串中指定的旧字符替换为新字符。语法:REPLACE(string, old_char, new_char),其中string为要进行替换的字符串,old_char为要替换的旧字符,new_char为要替换成的新字符。例如:REPLACE(address, “Street”, “St.”),表示将“address”字段中所有的“Street”替换成“St.”

  37. RIGHT:从右边开始截取指定长度的字符。语法:RIGHT(string, length),其中string为要进行截取的字符串,length为要截取的长度。例如:RIGHT(employee_name, 3),表示截取“employee_name”字段右边的3个字符。

  38. ROUND:将数字四舍五入到指定位数。语法:ROUND(number, num_digits),其中number为要四舍五入的数字,num_digits为要保留的小数位数。例如:ROUND(sales, 2),表示将“sales”字段的值保留两位小数并四舍五入。

  39. CONCAT:将多个字符串连接成一个字符串。语法:CONCAT(string1, string2, …),其中string1、string2等为要进行连接的字符串。例如:CONCAT(first_name, " ", last_name),表示将“first_name”和“last_name”两个字段连接成一个字符串。

  40. SIGN:返回数字的正负号。语法:SIGN(number),其中number为要获取正负号的数字。例如:SIGN(sales),表示获取“sales”字段的正负号。

  41. SIN:计算数字的正弦值。语法:SIN(number),其中number为要计算正弦值的数字。例如:SIN(45),表示计算45度的正弦值。

  42. SQRT:计算数字的平方根。语法:SQRT(number),其中number为要计算平方根的数字。例如:SQRT(25),表示计算25的平方根。

  43. SUM:求和函数。语法:SUM(field),其中field为要进行求和操作的数据集字段。例如:SUM(sales),表示对“sales”字段进行求和操作。

  44. SUBSTITUTE:将字符串中指定的旧子串替换为新子串。语法:SUBSTITUTE(string, old_string, new_string),其中string为要进行替换的字符串,old_string为要替换的旧子串,new_string为要替换成的新子串。例如:SUBSTITUTE(address, “Street”, “St.”),表示将“address”字段中所有的“Street”子串替换成“St.”。

  45. TAN:计算数字的正切值。语法:TAN(number),其中number为要计算正切值的数字。例如:TAN(45),表示计算45度的正切值。

  46. TEXT:将数字格式化为文本。语法:TEXT(value, format),其中value为要进行格式化的数字,format为数字格式化的样式。例如:TEXT(sales, “#,##0.00”),表示将“sales”字段格式化为以逗号分隔的千位数,并保留两位小数。

  47. TIME:将时、分、秒组合成时间。语法:TIME(hour, minute, second),其中hour、minute、second分别为时、分、秒。例如:TIME(9,30,0)表示上午9点30分。

  48. TIMEVALUE:将时间转换为一个数字。语法:TIMEVALUE(time),其中time为要进行转换的时间。例如:TIMEVALUE(“9:30:00 AM”),表示将上午9点30分的时间转换为一个数字。

  49. TRIM:删除字符串中的空格。语法:TRIM(string),其中string为要删除空格的字符串。例如:TRIM(employee_name),表示删除“employee_name”字段中的空格。

  50. UPPER:将字符串转换为大写。语法:UPPER(string),其中string为要转换为大写的字符串。例如:UPPER(employee_name),表示将“employee_name”字段转换为大写。

  51. VALUE:将文本转换为一个数字。语法:VALUE(string),其中string为要进行转换的文本。例如:VALUE(“123”),表示将字符串“123”转换为数字123。

  52. VLOOKUP:在表格中查找指定值并返回所在列的相应值。语法:VLOOKUP(lookup_value, table_array, col_index_num),其中lookup_value为要查找的值,table_array为目标表格区域,col_index_num为返回结果所在列数。例如:VLOOKUP(“Apples”, A1:B4, 2),表示查找“A1:B4”区域中包含“Apples”的单元格所在的列,并返回该列的数据。

  53. WEEKDAY:获取日期是星期几。语法:WEEKDAY(date, type),其中date为要获取星期的数据集字段,type表示返回的星期数类型(默认为1)。例如:WEEKDAY(sale_date),表示获取销售日期是星期几。

  54. YEAR:获取日期的年份。语法:YEAR(date),其中date为要获取年份的数据集字段。例如:YEAR(sale_date),表示获取销售日期的年份。

  55. CHART:用于创建图表。语法:CHART(chart_type, data_set, x_axis, y_axis, [series_name]),其中chart_type为要创建的图表类型(如柱形图、折线图等),data_set为数据集,x_axis和y_axis为数据集中的x轴和y轴字段,series_name为可选,表示数据系列名称。例如:CHART(“bar”, “sales”, “product_name”, “sales_amount”),表示在“sales”数据集中以“product_name”为x轴,“sales_amount”为y轴创建柱形图。

  56. MAP:用于创建地图。语法:MAP(map_type, data_set, location_field, [tooltip_field]),其中map_type为要创建的地图类型(如热力图、气泡地图等),data_set为数据集,location_field为数据集中的地理位置字段,tooltip_field为可选,表示需要在地图上显示的鼠标悬停提示信息。例如:MAP(“heatmap”, “sales”, “customer_city”, “sales_amount”),表示在“sales”数据集中根据“customer_city”创建热力图,并在地图上显示“sales_amount”的鼠标悬停提示信息。

  57. FILTER:用于筛选数据集中符合要求的记录。语法:FILTER(data_set, condition),其中data_set为要筛选的数据集,condition为筛选条件。例如:FILTER(“sales”, “sales_amount > 10000”),表示在“sales”数据集中筛选“sales_amount”大于10000的记录。

  58. SORT:用于对数据集进行排序。语法:SORT(data_set, sort_field, [sort_order]),其中data_set为要排序的数据集,sort_field为排序字段,sort_order为可选,表示排序方式(默认为升序)。例如:SORT(“sales”, “sales_amount”, “desc”),表示按照“sales_amount”字段进行降序排列。

  59. GROUP BY:用于对数据集进行分组汇总。语法:GROUP BY(data_set, group_field, summary_field, summary_function),其中data_set为要分组汇总的数据集,group_field为分组字段,summary_field为汇总字段,summary_function为汇总函数(如SUM、COUNT等)。例如:GROUP BY(“sales”, “customer_city”, “sales_amount”, “SUM”),表示按照“customer_city”字段进行分组汇总,并对每组的“sales_amount”字段进行求和操作。

  60. JOIN:用于将两个数据集连接起来。语法:JOIN(data_set1, data_set2, join_field),其中data_set1、data_set2为要连接的两个数据集,join_field为连接字段。例如:JOIN(“sales”, “customers”, “customer_id”),表示将“sales”数据集和“customers”数据集根据“customer_id”进行连接。

  61. UNION:用于将两个数据集合并起来。语法:UNION(data_set1, data_set2),其中data_set1、data_set2为要合并的两个数据集,要求两个数据集的字段数和字段类型必须相同。例如:UNION(“sales2019”, “sales2020”),表示将“sales2019”和“sales2020”两个数据集合并起来。

  62. PIVOT:用于透视表格。语法:PIVOT(data_set, row_field, column_field, summary_field, summary_function),其中data_set为要透视的数据集,row_field为行字段,column_field为列字段,summary_field为汇总字段,summary_function为汇总函数(如SUM、COUNT等)。例如:PIVOT(“sales”, “customer_city”, “product_name”, “sales_amount”, “SUM”),表示根据“customer_city”和“product_name”两个字段透视“sales”数据集,并对“sales_amount”字段进行求和操作。

  63. RANK:用于根据指定字段对数据集进行排名。语法:RANK(data_set, rank_field, [rank_order]),其中data_set为要进行排名的数据集,rank_field为排名字段,rank_order为可选,表示排名方式(默认为降序)。例如:RANK(“sales”, “sales_amount”, “asc”),表示按照“sales_amount”字段进行升序排名。

  64. WINDOW FUNCTION:用于计算在一定范围内的聚合值。常见的WINDOW FUNCTION有ROW_NUMBER、RANK、DENSE_RANK、NTILE等。语法:WINDOW FUNCTION ([OVER (PARTITION BY partition_field ORDER BY order_field ROWS BETWEEN start AND end)]),其中partition_field表示分区字段,order_field表示用于排序的字段,start和end表示计算范围,常见的取值有UNBOUNDED PRECEDING(从头开始)和UNBOUNDED FOLLOWING(到末尾结束)。例如:ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY sale_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),表示根据“customer_id”和“sale_date”字段进行分组,并计算排名。

  65. CASE WHEN:用于根据条件进行分支操作。语法:CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE default END,其中condition为条件表达式,result为满足条件时返回的结果,default为默认返回结果。例如:CASE WHEN sales_amount > 10000 THEN “High Sales” WHEN sales_amount > 5000 THEN “Medium Sales” ELSE “Low Sales” END,表示根据“sales_amount”字段的数值大小进行分类。

  66. DATEADD:用于在日期上增加指定的时间间隔。语法:DATEADD(interval, number, date),其中interval为要添加的时间间隔(如year、month、day等),number为要添加的数量,date为要进行处理的日期。例如:DATEADD(“day”, 30, sale_date),表示将“sale_date”字段的日期加上30天。

  67. DATEDIFF:用于计算两个日期之间的差值。语法:DATEDIFF(interval, date1, date2),其中interval为要计算差值的单位(如year、month、day等),date1和date2分别为两个日期。例如:DATEDIFF(“day”, sale_date, ship_date),表示计算“sale_date”和“ship_date”两个日期之间的天数差。

  68. DATEPART:用于获取日期的部分信息。语法:DATEPART(interval, date),其中interval为要提取的部分(如year、month、day等),date为要获取部分信息的日期。例如:DATEPART(“year”, sale_date),表示获取“sale_date”的年份。

  69. GETDATE:获取当前系统时间。语法:GETDATE(),例如:GETDATE(),表示获取当前系统时间。

  70. RAND:生成随机数。语法:RAND(),例如:RAND(),表示生成一个0到1之间的随机数。

  71. CHARINDEX:用于查找指定字符串在目标字符串中的位置。语法:CHARINDEX(search_string, target_string, [start_position]),其中search_string为要查找的字符串,target_string为目标字符串,start_position为可选的起始查找位置(默认为1)。例如:CHARINDEX(“hello”, “hello world”),表示查找“hello”在“hello world”中的位置。

  72. LEFT:用于获取字符串左侧的指定长度的部分。语法:LEFT(string, length),其中string为要进行处理的字符串,length为要获取的长度。例如:LEFT(“hello world”, 5),表示获取“hello world”字符串左侧的5个字符。

  73. RIGHT:用于获取字符串右侧的指定长度的部分。语法:RIGHT(string, length),其中string为要进行处理的字符串,length为要获取的长度。例如:RIGHT(“hello world”, 5),表示获取“hello world”字符串右侧的5个字符。

  74. LEN:用于获取字符串的长度。语法:LEN(string),其中string为要获取长度的字符串。例如:LEN(“hello world”),表示获取“hello world”字符串的长度。

  75. REPLACE:用于替换字符串中的指定内容。语法:REPLACE(string, search_string, replace_string),其中string为要进行替换的字符串,search_string为要被替换的子字符串,replace_string为替换后的字符串。例如:REPLACE(“hello world”, “world”, “everyone”),表示将“hello world”字符串中的“world”替换成“everyone”。

  76. UPPER:用于将字符串转换成大写。语法:UPPER(string),其中string为要进行操作的字符串。例如:UPPER(“hello world”),表示将“hello world”字符串转化为大写。

  77. LOWER:用于将字符串转换成小写。语法:LOWER(string),其中string为要进行操作的字符串。例如:LOWER(“HELLO WORLD”),表示将“HELLO WORLD”字符串转化为小写。

  78. LTRIM:用于删除字符串左侧的空格。语法:LTRIM(string),其中string为要进行处理的字符串。例如:LTRIM(“ hello world”),表示删除“ hello world”字符串左侧的空格。

  79. RTRIM:用于删除字符串右侧的空格。语法:RTRIM(string),其中string为要进行处理的字符串。例如:RTRIM(“hello world ”),表示删除“hello world ”字符串右侧的空格。

  80. SUBSTRING:用于获取字符串的子串。语法:SUBSTRING(string, start_position, length),其中string为要获取子串的字符串,start_position为起始位置,length为要获取的长度。例如:SUBSTRING(“hello world”, 1, 5),表示获取“hello world”字符串中从第1个字符开始的5个字符组成的子串。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值