java中CountIf、Lookup、随机数函数和公式返回值,实例展示

BSO 2020-09-11 09:13:48 java常见问答 7185

上次已经为大家介绍过java中Excel公式的计算和函数,实例展示,今天要简述的依旧是java中Excel函数的代码展示,包括CountIf和SumIf函数、Lookup、随机数函数和公式返回值。一起来看看吧。

一、CountIf和SumIf函数,代码展示如下:

HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)
HSSFRow row = sheet.createRow(0);
row.createCell(0)
    .setCellValue(57);
row.createCell(1)
    .setCellValue(89);
row.createCell(2)
    .setCellValue(56);
row.createCell(3)
    .setCellValue(67);
row.createCell(4)
    .setCellValue(60);
row.createCell(5)
    .setCellValue(73);
row.createCell(7)
    .setCellFormula("COUNTIF(A 1:F 1,\">=60\")");
row.createCell(8)
    .setCellFormula("SUMIF(A 1: F 1,\">=60\",A 1:F 1)");

对上面的公式作一个简要的说明:

1.COUNTIF(range,criteria):满足某条件的计数的函数。①参数range:需要进行读数的计数;②参数criteria:条件表达式,计数需要满足此条件。

2.SumIF(criteria_range, criteria,sum_range):用于统计某区域内满足某条件的值的求和。①参数criteria_range:条件测试区域,第二个参数Criteria中的条件将与和条件测试区域中的值进行比较;②参数criteria:条件测试值,满足条件的对应的sum_range项将进行求和计算;③参数sum_range:汇总数据所在区域,求和时会排除掉不满足Criteria条件的对应的项。

二、Lookup函数,代码展示如下:

HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)
HSSFRow row = sheet.createRow(0);
row.createCell(0)
    .setCellValue(0);
row.createCell(1)
    .setCellValue(59);
row.createCell(2)
    .setCellValue("不及格");
row = sheet.createRow(1);
row.createCell(0)
    .setCellValue(60);
row.createCell(1)
    .setCellValue(69);
row.createCell(2)
    .setCellValue("及格");
row = sheet.createRow(2);
row.createCell(0)
    .setCellValue(70);
row.createCell(1)
    .setCellValue(79);
row.createCell(2)
    .setCellValue("良好");
row = sheet.createRow(3);
row.createCell(0)
    .setCellValue(80);
row.createCell(1)
    .setCellValue(100);
row.createCell(2)
    .setCellValue("优秀");
row = sheet.createRow(4);
row.createCell(0)
    .setCellValue(75);
row.createCell(1)
    .setCellFormula("LOOKUP(A 5,$A$1:$A$4,$C$1:$C$4)");
row.createCell(2)
    .setCellFormula("VLOOKUP(A 5,$A$1:$C$4,3,true)");

对上面的公式作一个简要的说明:

1.LOOKUP(lookup_value,lookup_vector,result_vector):①第一个参数:需要查找的内容,本例中指向A5单元格,也就是75 ;②第二个参数:比较对象区域,本例中的成绩需要与$A$1:$A$4中的各单元格中的值进行比较;③第三个参数:查找结果区域,如果匹配到会将此区域中对应的数据返回。如本例中返回$C$1:$C$4中对应的值。

2.VLOOKUP(lookup_value,lookup_area,result_col,is_fuzzy),①第一个参数:需要查找的内容,这里是A5单元格;②第二个参数:需要比较的表,这里是$A$1:$C$4;③第三个参数:匹配结果对应的列序号。这里要对应的是成绩列,所以为3;④第四个参数:指明是否模糊匹配。例子中的TRUE表示模糊匹配,与上例中一样。匹配到的是第三行。如果将此参数改为FALSE,因为在表中的第1列中找不到75,所以会报“#N/A”的计算错误。

三、随机数函数,代码展示如下:

HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)
HSSFRow row = sheet.createRow(0);
row.createCell(0)
    .setCellFormula("RAND()"); //取0-1之间的随机数
row.createCell(1)
    .setCellFormula("int(RAND()*100)"); //取0-100之间的随机整数
row.createCell(2)
    .setCellFormula("rand()*10+10"); //取10-20之间的随机实数
row.createCell(3)
    .setCellFormula("CHAR(INT(RAND()*26)+97)"); //随机小写字母
row.createCell(4)
    .setCellFormula("CHAR(INT(RAND()*26)+65)"); //随机大写字母
//随机大小写字母
row.createCell(5)
    .setCellFormula("CHAR(INT(RAND()*26)+if(INT(RAND()*2)=0,97,65))");

对上面的公式做一个简要的说明:

上面的代码中除RAND函数以外,还有CHAR函数用来将ASCII码换为字母,INT函数用来取整。同时需要注意INT函数不会四舍五入,无论小数点后是多少都会被舍去。

四、获得公式的返回值,代码展示如下:

HSSFSheet sheet = workbook.createSheet("Test"); // 创建工作表(Sheet)
HSSFRow row = sheet.createRow(0);
row.createCell(0)
    .setCellValue(7); //A 1
row.createCell(1)
    .setCellValue(8); //B 1
HSSFCell cell = row.createCell(2);
cell.setCellFormula("A 1*B 1+14");
HSSFFormulaEvaluator e = newHSSFFormulaEvaluator(workbook);
cell = e.evaluateInCell(cell); //若Excel文件不是POI创建的,则不必调用此方法
System.out.println("公式计算结果:" + cell.getNumericCellValue());

以上就是关于java中CountIf和SumIf函数、Lookup、随机数函数和公式返回值的主要内容,并且通过实际的例子为大家展示。想要了解更多java基础java经典例子,敬请关注奇Q工具网。

推荐阅读:

java中Excel单元格对齐包含什么?使用边框怎么做?

java中Excel字体的设置,背景和纹理的操作

java中Excel设置宽高怎么做?单元格的日期怎么判断?