Excel 邮件合并小数点问题问题

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)3377人阅读
/*** 导出Excel* @param sstjid* @return boolean*/public synchronized String exportExcel(String sstjid){Zshgadj gadj = ZshgadjService.service.findById_edit(sstjid);short rowHeight_x = 700;//小单元格行高word_index++;ExcelDic += (new Date().getYear()+1900)+"/";String path = ExcelDic + "report_"+ word_index + ".xls";String rootPath = PathKit.getWebRootPath().replace("\\", "/");rootPath = rootPath.substring(0, rootPath.lastIndexOf("/"));HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sheet1");//打开Excel表格在底端可以看到
sheet.setColumnWidth(0, 7800);//设置列宽
sheet.setColumnWidth(1, 9600);
sheet.setColumnWidth(2, 7800);
sheet.setColumnWidth(3, 9600);
//设置样式
HSSFCellStyle cellStyle = workbook.createCellStyle(); // 样式对象
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
HSSFFont font = workbook.createFont();//设置字体
font.setFontName("Arial");
font.setFontHeightInPoints((short) 20);//设置字体大小
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
//设置样式
HSSFCellStyle cellStyle_T = workbook.createCellStyle(); // 样式对象
cellStyle_T.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
cellStyle_T.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
cellStyle_T.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle_T.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle_T.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle_T.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cellStyle_T.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); //设置颜色
HSSFFont font_t = workbook.createFont();//设置字体
font_t.setFontName("Arial");
font_t.setFontHeightInPoints((short) 11);//设置字体大小
font_t.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle_T.setFont(font_t);
//设置样式
HSSFCellStyle cellStyle_C = workbook.createCellStyle(); // 样式对象
cellStyle_C.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
cellStyle_C.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle_C.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle_C.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle_C.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
HSSFFont font_c = workbook.createFont();//设置字体
font_c.setFontName("Arial");
font_c.setFontHeightInPoints((short) 11);//设置字体大小
cellStyle_C.setFont(font_c);
cellStyle_C.setWrapText(true);// 自动换行
int indexRow = 0;
// 创建第一行
HSSFRow row0 = sheet.createRow(indexRow);
row0.setHeight((short) 1100);// 设置行高
// 创建第一列
HSSFCell cell0 = row0.createCell(indexRow++);
cell0.setCellValue(new HSSFRichTextString("表"));
cell0.setCellStyle(cellStyle);
//合并表头单元格
setRegionStyle(sheet, new Region(0,(short)0,0,(short)3),cellStyle);
sheet.addMergedRegion(new Region(
0 //first row (0-based) from 行
,(short)0 //first column (0-based) from 列
,0//last row
,(short)3//last column
// 创建第二行
HSSFRow row1 = sheet.createRow(indexRow++);
row1.setHeight(rowHeight_x);
HSSFCell cell1_1 = row1.createCell(0);
cell1_1.setCellValue(new HSSFRichTextString("姓名"));
cell1_1.setCellStyle(cellStyle_T);
HSSFCell cell2_1 = row1.createCell(1);
cell2_1.setCellValue(new HSSFRichTextString(gadj.getStr(Zshgadj.column_xahzxm)));
cell2_1.setCellStyle(cellStyle_C);
HSSFCell cell3_1 = row1.createCell(2);
cell3_1.setCellValue(new HSSFRichTextString("审核人"));
cell3_1.setCellStyle(cellStyle_T);
HSSFCell cell4_1 = row1.createCell(3);
cell4_1.setCellValue(new HSSFRichTextString(gadj.getStr(Zshgadj.column_shr)));
cell4_1.setCellStyle(cellStyle_C);
// 创建第三行
(合并单元格)
HSSFRow row9 = sheet.createRow(indexRow++);
row9.setHeight((short)1500);
HSSFCell cell1_9 = row9.createCell(0);
cell1_9.setCellValue(new HSSFRichTextString("简要情况"));
cell1_9.setCellStyle(cellStyle_T);
HSSFCell cell2_9 = row9.createCell(1);
cell2_9.setCellValue(new HSSFRichTextString(gadj.getStr(Zshgadj.column_jyaq)));
//合并表头单元格
setRegionStyle(sheet, new Region(indexRow-1,(short)1,indexRow-1,(short)3),cellStyle_C);
sheet.addMergedRegion(new Region(indexRow-1,(short)1,indexRow-1,(short)3));
FileOutputStream outputStream =try {outputStream = new FileOutputStream(rootPath + path);workbook.write(outputStream);
outputStream.flush();outputStream.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {try {
if(workbook != null){
workbook.close();
if(outputStream != null){
outputStream.close();
}} catch (IOException e) {e.printStackTrace();}}
/*** 设置单元格边框(解决合并单元格显示部分边框问题)* @param sheet * @param region* @param cs*/@SuppressWarnings("deprecation")public static void setRegionStyle(HSSFSheet sheet, Region region, HSSFCellStyle cs) { for (int i = region.getRowFrom(); i &= region.getRowTo(); i++) {
HSSFRow row = HSSFCellUtil.getRow(i, sheet);
for (int j = region.getColumnFrom(); j &= region.getColumnTo(); j++) {
HSSFCell cell = HSSFCellUtil.getCell(row, (short) j);
cell.setCellStyle(cs);技巧 | 你经常遇到的Excel问题,答案全在这儿了
我的图书馆
技巧 | 你经常遇到的Excel问题,答案全在这儿了
50个Excel常见问题汇总。1、excel判断分数成绩是否及格,怎么做?答:excel判断分数成绩是否及格可以用IF进行区间判断。=IF(A1>60,'及格','不及格')2、excel频率统计用什么函数?答:FREQUENCY以一列垂直数组返回某个区域中数据的频率分布,具体用法回复frequency或 频率查看示例。3、excel什么时候要用$符号呢?答:复制公式时,单元格的引用位置不想发生变化时,就在行号或列标前加$,了解详情回复 “绝对引用”查看教程4、合并单元格后里面的数据或文字我都想保留如何处理?答:多个单元格都含有内容,如果要在合并后保留所有单元格的内容,可以用下面的方法。(1)选取单元格区域,并把列宽拉到可以容下所有单元格合并后的宽度。(2)开始选项卡 - 编辑 - 两端对齐。把多个单元格的内容合并到一个单元格中。(3)在分隔的空隔处按alt+enter键添加强制换行符,换行。(4)再合并单元格5、插入表格后发现行数不够,怎样才能再次快速插入更多行?答:需要插入多少行就选取多少行,然后就会一次插入多少空行。6、合并单元格后里面的数据或文字我都想保留如何处理答:多个单元格都含有内容,如果要在合并后保留所有单元格的内容,可以用下面的方法。(1)选取单元格区域,并把列宽拉到可以容下所有单元格合并后的宽度。(2)开始选项卡 - 编辑 - 两端对齐。把多个单元格的内容合并到一个单元格中。(3)在分隔的空隔处按alt+enter键添加强制换行符,换行。(4)再合并单元格7、如何复制粘贴行宽答:粘贴后的粘贴选项中,会有 保留源列宽的选项。如下图所示:8、excel如何把数值批量转换成文本答:数据 - 分列 - 第三步选文本。9、excel如何把空值全部填写为“0“答:定位 - 条件& - 空值- 在编辑栏中输入 0,按 ctrl+enter完成输入。10、excel2010的插入特殊符号在哪里?2010版本的特殊符号, 很多同学在搜这个问题 ,可以肯定的说excel2010版本里没有这个命令的。大家不用再费心找了,如果要插入符号,可以从插入选项卡 - 符号 里找找。在微信平台回复“特殊符号”可以查看更多符号输入方法。11、excel如何去掉地址栏的名称excel如何去掉地址栏的名称,2003版,插入菜单 - 名称 - 定义 - 在弹出的窗口找到该名称 点删除按钮 ,2010版,公式选项卡- 名称管理器 -找到名称点删除。12、如何按日期显示星期?问:excel如何按日期显示成星期?答:公式=TEXT(A2,'aaaa')=WEEKDAY(A2,2)也可以通过格式设置把日期显示成星期。13、excel如何隐藏公式?在excel里,如何隐藏公式,让公式别人看不到呢?答:在excel里隐藏公式是通过设置单元格格式设置的。选取公式所在单元格,右键菜单中点设置单元格格式,然后在弹出的单元格格式窗口点保护选项卡,勾选隐藏公式选项。最后通过工具 - 保护 -保护工作表(excel2010里是通过 审阅 - 保护工作表)。然后在单元格或编辑栏里就看不到公式了。14、excel表格中下拉复制数字时,为什么不变大呢?怎么才能递增?答:复制数字时,只需要按ctrl键再下拉,数字就会发生变化了。15、excel中平方函数是哪个?在excel中我们有时需要计算一个数的平方,该怎么计算呢,excel提供了两种方法:(1)使用脱字节符号^例 3的2次方可以写成 =3^2 结果是9。(2)使用平方函数=POWER(3,2) 表示3的2次方,如果是4的3次方可以写为=POWER(4,3)。16、excel合并单元格复制公式怎操作呀excel表格中,如果想在合单元格中复制公式,会提示大小一样中断你的复制,这时候我们可以用快捷键填充公式。选中所有包含合并单元格的区域(第一个单元格要含公式),双击编辑栏中公式,然后按ctrl+回车键填充即可。17、excel数字不能求和,怎么办?数据导入Excel中后居然是以文本形式存在的(数字默认是右对齐,而文本是左对齐的),即使是重新设置单元格格式为数字也无济于事。下面的方法可以帮你快速转换成可以计算的数字。选取数字区域,第一个单元格一定是包括数字的,而且单元格左上方有绿三角,选取后打开绿三角,点转换为数字。如下图所示:18、excel产生随机数,怎么做?答:excel提供了一个可以生成随机数的函数rand,用它可以生成指定范围的随机数:=rand()*(最大数-最小数)+最小数。比如生成 10~100之间的随机数=rand()*90+10如果要生成随机的整数呢=int(rand()*90+10 ) 也可以用=RANDBETWEEN(1,100)19、excel中如何开根号问:excel里开根号怎么做,例如 9开2次方,结果是3答:在excel里开根号可以用^符号完成,如:9^(1/2)的结果是3。20、excel筛选用不了问:在excel中使用自动筛选时,可用不了了,怎么回事?答:导致筛选无法使用有很多原因,最常见的原因是工作表或工作簿被保护了,你可以检查一下是不是工作表添加了保护密码。21、四分之一怎么打答:先输入0 然后再输入空格,再输入1/4。22、excel中如何限制使用筛选按钮答:excel中如何限制使用筛选按钮呢?答案可能出乎大家的意料之外,如果你是EXCEL2003的用户,可以执行:工具菜单 - 选项 - 视频 - 对象选择全部不显示,你再看看自动筛选已先法再使用了。23、Excel偶数行怎么选取和删除?答:excel选取偶数行有很多方法,但最好的方法还是辅助列+自动筛选方法。具体的步骤为:1、在最后的辅助列中,在2行输入数字1,选取1行和2行向下拖动复制,复制后辅助列的偶数行为填充成1。2、筛选 -自动筛选,选取值为1的行。3、选取所有显示的偶数行区域。如果是删除偶数行,直接删除筛选出的偶数行即可。24、EXCEL里隐藏的第一行显示出来答:选取第二行,然后拖动向上选取,取消隐藏,或者全选,格式 - 行 - 取消隐藏。25、excel打开默认设置成03版设置默认打开03版的方法;到excel 2003 的安装目录,把03版的excel.exe 改成excel2003.exe,然后就可以按正常的方法设置默认打开excel 文件为03版的。26、excel表格计算公式不能用了表格中的公式仍然存在,但是更改了其中一个单元格的数字,其公式结果怎么不变了呢?就是两两相乘的公式,之前都是自动更新出结果,现在不得行了。输入新的数字,仍然是原来的结果。答:工具菜单 - 选项 - 重新计算 你看看是手动还是自动。27、excel每页显示表头,怎么设置?问:在打开表格时,因为表格比较长,怎么在每一页的最上面设置表头。答:在EXCEL打印预览视图中,打开“页面设置”对话框中的“工作表”标签,单击“顶端标题行”文本框右侧的[压缩对话框]按钮,选定表头和顶端标题所在的单元格区域,再单击该按钮返回到“页面设置”对话框,单击[确定]按钮。28、excel多条件求和函数有哪些?在EXCEL里,有哪些函数可以完成多条件求和呢?SUMIF函数和COUNTIF函数用法差不多.多条件的处理方法如下:(1)多项目求和=SUM(SUMIF(B31:B35,{'A','C'},C31:C35))(2)03版本可以用SUMPRODUCT函数替代:=SUMPRODUCT((MONTH(A3:A9)=3)*(B3:B9='A')*C3:C9)(3)07版本可以用SUMIFS替换:=SUMIFS(D2:D11,A2:A11,'公司1',B2:B11,'人事部')多条件汇总,也可以用SUMPRODUCT函数完成。=SUMPRODUCT(条件1*条件2*条件3*数据列)=sumproduct((a1:a10='财务')*(b1:b10='出纳')*c1:c10)‘统计A列是财务,同时B列是出纳的C列数据之和29、怎么计算两日期相隔多少月零多少天?在excel里计算怎么计算两日期相隔多少月零多少天,可以用DATE和DATEDIF函数配合着计算。比如A1是开始日期,B1是结果日期,C1是相隔多少月,可以这样设置公式=DATEDIF(A2,B2,'M')D1相隔C1月还零多少天,可以这样设置公式=B2-DATE(YEAR(A2),MONTH(A2)+C2,DAY(A2))30、excel表格内如何换行?问:我想在excel单元格中输入文本时,怎么换到下一行呢?答:excel单元格内换行可以用插入换行符的方法。比如要输入中国 然后换下一行 河南。1 输入“中国”,按ATL+回车键后换到下面一行2 输入河南31、excel表格怎么开根号?答:在excel里开根号可以用乘方来运算,可能大家很疑惑,开根号怎么用乘方的算式呢?&原来在EXCEL里,可以用^数字来表示乘方运算,如3^2,表示3的2次方,结果为9,而如果^后的数字是分数则可以进行开方运算。如&9^(1/2)就可以运算9的开方。结果为332、平方米(M2)符号怎么打?答:在excel里,输入平方米符号可以先输入M2,然后选中2,按CTRL+1打开单元格设置对话框,然后勾选上标。33、Excel文件打开乱码怎么办?答:Excel文件有打开会出现一些乱码文字,这时候该怎么办呢?下面是搜集自网络的一些解决方法,希望能对大家有用。招数一:将工作簿另存为SYLK格式,如果Excel文件能够打开,那么将工作簿转换为SYLK格式可以筛选出文档的损坏部分,然后再保存数据。首先,打开需要的工作簿。在“文件”菜单中,单击“另存为”命令。在“保存类型”列表中,单击“SYLK(符号连接)(*.slk)”,然后单击“保存”按钮。关闭目前开启的文件后,打开刚才另存的SYLK版本即可。招数二:转换为较早的版本如果由于启动故障而没有保存Excel工作簿,则最后保存的版本可能不会被损坏。当然,该版本不包括最后一次保存后对文档所作的更改。关闭打开的工作簿,当系统询问是否保存更改时,单击“否”。在“文件”菜单中,单击“打开”命令,双击该工作簿文件即可。招数三:打开并修复工作簿如果Excel文件根本不能够使用常规方法打开,那么可以尝试Excel 2003中的“打开并修复”功能,该功能可以检查并修复Excel工作簿中的错误。在“文件”菜单中,单击“打开”命令。通过“查找范围”框,定位并打开包含受损文档的文件夹,选择要恢复的文件。单击“打开”按钮旁边的箭头,然后单击“打开并修复”即可。招数四:用Excel查看程序打开工作簿在用尽各种方法仍不能解决问题的情况下,大家不妨考虑一下使用第三方软件开展恢复工作。下面的链接是一个经过实际检验的Excel恢复软件,你可以通过此软件达到恢复您Excel数据的目的。&希望大家都能解决这个文件乱码的问题。34、excel如何冻结窗格e 例:你要冻结前三行前两行,那么你可以选中C4单元格,然后执行窗口(2010版 视图) - 冻结窗格。35、SUMIF函数是易失性函数吗?答:SUMIF函数本身不是易失性函数,但当SUMIF第一个参数和第三个参数区域大小不致时,会有易失性函数的特征。不修改数据也会在关闭时提示文件是否保存。36、如何更改EXCEL撤销次数?到注册表(不知道,在开始运行里输入regedit回车即可)到以下位置!!!!我的是office2003!!!!在11.0处可能有所不同![HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options]新建dword值&& 键名为UndoHistory&& (双击名称)值为10进制,输入数值为30,即可。37、excel如何打印不连续区域?答:按CTRL键不松,选取区域,再点文件菜单中的打印区域--设置打印区域。38、excel万元显示如何设置?160000元 用16万元表示,如何设置?我理解“!”的作用是把后面的这个字符作为符号处理,换句话说:#!.0,万元和&#'.'0,万元这两种写法的作用、意义都是完全相同的。输入3451,显示3#451,单元格格式怎样设定,自定义格式:0!#000 也可以0'#'000。39、VLOOKUP(B3,IF({1,0}是什么意思?=VLOOKUP(B3,IF({1,0},G$3:G$5,F$3:F$5),2,0)公式中的 IF({1,0},G$3:G$15,F$3:F$15)作何解释?我的理解:{1,0}的含义是1代表TRUE(即逻辑值为真),0代表FALSE(即逻辑值为假),公式为:=VLOOKUP(B3,IF({TRUE,FALSE},G3:G17,F3:F17),2,0)也同样正确,这样更好理解.通过执行IF({TRUE,FALSE},G3:G17,F3:F17)为真,得到G3:G17这列数,由于是数组,再执行FALSE得到F3:F17,因此得到一个2列多行的数组。40、excel密码忘记了怎么办?凉拌?如果excel密码忘记了,不要急。可以用officekey工具解除密码。如果是excel2003,可以去下面地址下载解密码解除软件。:http://www.excelpx.com/thread-.html工作簿密码,工作表密码和VBA密码都可以解。41、excel页眉页脚怎么设置?答;设置excel的页眉页脚的方法是:excel2003中,文件菜单 - 页面设置 - 页眉/页脚选项卡中。excel2007和excel2010中,页面布局选项卡 - 打印标题 - 页眉/页脚选项卡中。42、excel分类汇总,如何做?答:excel分类汇总是一个简单实用的数据汇总工具。先对单元格进行排序,然后执行数据菜单-分类汇总就OK了。43、Excel锁定单元格不让编辑怎么做答:默认状态下,excel单元格是锁定状态。但为什么锁定还可以编辑呢。因为少了一步保护工作表,保护工作表后,就无法再编辑单元格了。也许你会问,我想让编辑其中一部分单元格怎么办?凉拌,只需要把需要编辑的通过右键--设置单元格格式--保护--去掉锁定前的勾即可。44、excel打不开怎么办?答:excel文件打不开,原因有很多种。(1)、文件损坏。这时只有找一些专业修复软件才可以。(2)、加载宏文件,加载宏文件是隐藏窗口的。可以加载宏文件xla或xlam改为正常的xls文件和xlsx文件就可以打开了。(3)、打开文件看不到excel界面。这时可以尝试通过工具栏中的打开命令打开EXCEL文件。然后通过“工具--选项--在选项窗口中的常规选项卡中选取“忽略其他应用程序”后,就可以正常打开EXCEL文件了。45、excel统计个数怎么做?答:在excel中统计个数可以分以下几种情况:(1)、统计非空单元格个数:=COUNTA(A1:A1000)(2)、统计数字个数:=counta(a1:a1000)(3 )、 根据条件统计个数: =countif(a1:a1000,'>100')应用示例:例1:统计在A列是“公司A”的个数公式=Countif(A:A,'公司A')例2:统计A列包含“公司A”的个数公式=Countif(A:A,'*公司A*')注:这里使用通配*表示字符前后有任意个字符。例3:统计C列成绩大于60的学生个数公式 =Countif(C:C,'>60')注:这里是用运算对比符号和数字构成的条件例4:统计大于C1单元格数值的C列个数。公式:=Countif(c:c,'>' & c1)注:这里是用&插入了一个变量,即C1的值。例5:统计C列大于平均数的个数公式:=Countif(c:c,'>' & average(c:c))注:这里是使用了平均值函数average先计算平均值,然后作为条件。例6:统计A列为“公司A”或“公司B”的个数公式:{=Sum(Countif(A:A,{'公司A','公司B'})) }注:这里在第二个参数里加入了常量数组,使用countif的结果是分别按两个公司名称统计的结果,也是一个数组假如是{3,4},得到数组后用sum函数对两个数进行求和,得到总的个数,这个公式是数组公式,所以一定要输入公式后把光标放在公式最后,按ctrl+shift,然后按enter键结束输入。另:也许也还会问,如果设置更多条件该怎么弄,兰色幻想建议使用另一个可以多条件求和与计数的函数:sumproduct例:统计大于1000,小于3000的数字个数=sumprodcut((a1:a100>1000)*(a1:a10046、excel如何批量取消批注批量删除批注只需要以下两步:(1)、选取包含批注的区域(2)、右键菜单中“删除批注”47、excel怎么打印批注?答:页面布局 - 打印标题 - 批注 下拉框中选打印位置。48、计算两个日期间的月数答:计算两个日期之间的月数,可以用以下公式实现=DATEDIF(开始日期,结束日期,'M')49、Excel取消隐藏行列怎么做?答:取消excel隐藏列分以下几种情况。(1)、使用隐藏行或隐藏列的隐藏,可以选取包括隐藏行和隐藏列区域,右键菜单中取消隐藏即可。(2)、使用窗口冻结的隐藏。窗口--取消窗口冻结。(3)、使用筛选功能隐藏的列。数据--筛选--取消筛选(4)、使用设置列宽的隐藏。可以格式-列宽,输入数值即可取消隐藏50 身份证号码转换年龄,怎么做?如果身份证号在A1,在要算年龄的单元格输入=DATEDIF(TEXT(MID(A1,7,8),''),TODAY(),'y')▎本文转载自Excel精英培训,作者兰色幻想-赵志东
TA的最新馆藏
喜欢该文的人也喜欢查看: 1167|回复: 6
求助excel各标签页合并问题
阅读权限10
在线时间 小时
本帖最后由 zyf4933 于
09:47 编辑
(74.53 KB, 下载次数: 101)
09:33 上传
点击文件名下载附件
标签1汇总里面的B列和a标签、b标签里面的A列相同,请问怎么做匹配后合并到汇总标签里面
阅读权限100
在线时间 小时
=IF(ISERROR(VLOOKUP($B3,a!$A:$O,MATCH(O$2,a!$1:$1,),)),VLOOKUP($B3,b!$A:$O,MATCH(O$2,b!$1:$1,),),VLOOKUP($B3,a!$A:$O,MATCH(O$2,a!$1:$1,),))复制代码
高级版本可以用IFERROR,公式会简短。然后B表的A列你的数据没有维护进去。
(165.44 KB, 下载次数: 100)
10:38 上传
点击文件名下载附件
阅读权限10
在线时间 小时
& & & & & & & &
高级版本可以用IFERROR,公式会简短。然后B表的A列你的数据没有维护进去。
谢谢,亲测有效,公式很复杂,小白表示还有很多要学习啊。
阅读权限10
在线时间 小时
高级版本可以用IFERROR,公式会简短。然后B表的A列你的数据没有维护进去。
求大神能不能再帮一个相同问题的忙
汇总,a,b三张标签,其中三张标签中B列可以作为匹配项,汇总中的“原料规格”在ab标签里面也有,现在我这样写了公式无法正确匹配对,请大神帮忙,谢谢。如标黄数据段的实际到库数量全错。
08:58 上传
点击文件名下载附件
368.07 KB, 下载次数: 6
阅读权限50
在线时间 小时
本帖最后由 樱花片雪2 于
09:36 编辑
IF(ISERROR(VLOOKUP($B3,a!$A:$O,MATCH(O$2,a!$1:$1,),)),VLOOKUP($B3,b!$A:$O,MATCH(O$2,b!$1:$1,),),VLOOKUP($B3,a!$A:$O,MATCH(O$2,a!$1:$1,),))
向下填充公式。
阅读权限10
在线时间 小时
IF(ISERROR(VLOOKUP($B3,a!$A:$O,MATCH(O$2,a!$1:$1,),)),VLOOKUP($B3,b!$A:$O,MATCH(O$2,b!$1:$1,),),VLOO ...
谢谢 我附件里面就是这公式。不过匹配不上啊
阅读权限50
在线时间 小时
本帖最后由 樱花片雪2 于
10:04 编辑
楼主,汇总表的P3=IFERROR(INDEX(b!G:G,MATCH(B3&E3,b!A:A&b!F:F,0)),0),数组公式,向下填充公式。
最新热点 /1
京东ExcelHome畅销系列图书大联展,满100元-30元现金,莫失良机!
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师刚刚,我搞定了困扰多年的难题——Excel多表合并
图/文:安伟星
本文为新书章节试读内容
新书马上上市
已经等不及了
多表合并历来是困扰多数职场人士的难题,因为用到它的场景实在太多了:不同部门的数据、不同月份的数据、甚至不同公司的数据报表……分散在不同的工作表或者不同的工作簿中,他们具有相同的表头,如何快速将他们合并在同一个工作表中?难道只能一个一个复制么?
如图2-70所示,不同地区的销售数据,分布在不同的工作表中,它们的特点是工作表的数据结构是相同的,如何能够快速将其合并在同一个工作表中?
图2- 70:分布在不同工作表中的销量数据
Excel2016版本之前,解决这样的问题,基本上只能通过VBA来完成,但是VBA相对来说门槛比较高,不适合大多数职场人士。
庆幸的是,Excel2016自带的Power Query查询工具允许用户链接、合并多个数据源中的数据,我们可以灵活使用Power Query来实现Excel多表合并。
当然,由于Power Query功能异常强大,仅用它实现多表合并显然有些“杀鸡用牛刀”的感觉,但是对于不会VBA的同学,面对困扰已久的“多表合并”难题,这不失为一个好方法。
注:Excel2010~Excel2013版本,默认是没有Power Query工具的。如果您使用的是Excel 2010~Excel2013版本,可以到微软官网下载Power Query,这是一个免费插件,但是更早版本的Excel(如2003等)不支持这个插件。
同一个工作簿中的多表合并
案例1:如图2-70所示,多个地区的销售数据分布在不同的工作表中,这对后续的数据分析造成极大的不便,比如无法使用数据透视表,需要利用复杂的函数才能实现跨表求和等等,将不同表中的数据合并在同一个表中才是王道。
Step1:启动Power Query是通过Excel【新建查询】菜单完成的,它位于【数据】选项卡中的【获取和转化】分区。点击【新建查询】→【从文件】→【从工作簿】,如图2-71所示,然后在弹出的“导入数据”选择框中,选择包含要合并工作表的Excel文件,点击导入,如图2-72所示。
图2- 71:从工作簿中新建查询
图2- 72:将工作簿导入新建查询中
Step2:选择需要合并的工作表,并点击【编辑】,从而对新建的查询进行编辑,如图2-73所示。
图2- 73:选择需要合并在一起的工作表
Step3:接下来需要新建一个“追加查询”,将单个表合并起来,在查询编辑界面,点击【追加查询】→【追加查询】,如图2-74所示。
图2- 74:新建追加查询
在弹出的“追加查询”对话框中,将剩余的表格追加到右侧“要追加的表”一栏中,然后点击【确定】,如图2-75所示。
图2- 75:将剩余的两个表追加到当前查询表中
Step4:追加查询创建之后,会回到Power Query主界面,切换至【开始】选项卡→【关闭】分区→点击【关闭并上载】下拉三角→【关闭并上载至…】,如图2-76所示,这一步的目的是将在Power Query中处理过的数据导入到Excel中。
图2- 76:将Power Query中的查询导入Excel
提示:在Power Query中创建的查询表更像是数据库结构,我们需要将它在导入到Excel中。
在接下来的“加载到”界面中,保持默认选项,直接点击【加载】,即可将创建的“追加查询”加载到Excel工作表中,完成之后,我们已将同一工作簿中的三个不同工作表合并在一起,如图2-77所示。
图2- 77:三个工作表合并在一起的状态
之后,如果三个单独的表中有更新,在总表中选择点击【数据】→【连接】→【全部刷新】即可获取数据的最新状态。
通过Power Query合并起来的工作表的另一个好处是,这是一个动态的合并关系,一旦原始表中的数据发生变化,只需要刷新即可完成新数据的合并,可谓以逸待劳!
不同工作簿中的多表合并
更复杂的情况是我们要合并的工作表并不在同一个工作簿中,而是分布在不同的Excel文件中。如图2-78所示,有多个部门提交的数据,放置在同一个文件夹中,我们需要将这些Excel文件中的工作表合并在一起。
图2- 78:分布在不同工作簿值中的数据
提示:应该注意的是,要汇总的这些文件,工作簿中的数据结构必须相同(列数相同、列标题相同)。
Step1:点击【新建查询】→【从文件】→【从文件夹】,如图2-79所示,然后选择数据所在的文件夹,并点击【确定】。
图2- 79:从文件夹新建查询
然后直接点击【编辑】,即可将所有Excel文件的信息加载至Power Query并处于编辑界面。
Step2:将工作簿加载到Power Query之后,可以看到,工作簿的所有属性信息都在新建的查询中,而这里面很多信息都是不需要的,比如工作簿名、类型等,我们只需要用到工作簿中的内容,因此选择【Content】列,并点击【开始】→【删除列】→【删除其他列】,如图2-80所示,这样可以将无关列删除。
图2- 80:将无用的新系列删除
Step3:接下来,需要把【Content】中的内容提取出来。切换到【添加列】选项卡→点击【自定义列】,如图2-81所示。然后在弹出的【添加自定义列】窗口中输入函数:
Excel.Workbook([Content],true),通过Excel.Workbook把Content 里的内容提取出来,如图2-82所示。
图2- 81:自定义添加列
图2- 82:通过函数自定义添加列
提示:注意Excel.Workbook()的第二个参数,我们通过指定True,实现了默认情况下将第一行作为标题,省去了后面提升和筛选标题行的操作。
Step4:点击新建的Test列右侧的扩展按钮,把所有字段扩展出来,如图2-83所示。
图2- 83:扩展Test列中的所有内容
Step5:重复Step2中删除其他列,选中Test.Data列,然后点击【删除其他列】,然后点选Test.Data的扩展按钮,将Test.Data中的数据扩展出来,如图2-84所示。
图2- 84:将Test.Data值的数据扩展出来
经过两轮的筛选,即可看到,目前所剩下的列已经是各工作簿中的数据表头了。
Step6:点击【确定】后即可得到最终的汇总结果。接下来,和2.7.1中 Step4相同的操作,将数据加载到Excel表中,可以看到,所有部门的数据均已正确合并到一起。
通过使用此方法,我们可以快速对同一文件夹下的同结构Excel进行合并。而且将来数据更新后我们只需要在合并后的Excel表中点击【数据】→【连接】→【全部刷新】即可获得最新数据合并结果,一劳永逸。
不仅如此,此时放置各部门Excel数据的文件夹已经成了一个动态容器:如果向文件夹中新增其他部门的数据,Power Query也会自动把数据合并进来。所以实际应用中,每个月只需要将各个部门发送的数据复制到此文件夹中,在总表中点击刷新即可。
工欲善其事必先利其器
很多优秀的第三方Excel插件,可以更简单地完成本节所讲的功能。
第一款是Excel易用宝,它是是由Excel Home开发的一款Excel功能扩展工具软件,可以让繁琐或难以实现的操作变得简单可行,甚至能够一键完成。
第二款是慧办公插件,它同样是一款功能丰富的插件,通过这个插件,可以很轻松实现一些复杂的操作,包括本节讲的合并工作表,如图2-85所示。
图2- 85:慧办公插件“傻瓜式”功能
这两款插件都随着随书资源赠送给大家,放置的路径是:图书配套资源第2章 Excel这样玩,秀出真技能2.7 困扰很多人的难题:Excel多表合并。
以下是ExcelHome创始人、微软全球最有价值专家周庆麟老师为新书《竞争力:玩转职场Excel从此不加班》写的推荐语(节选)
作者:安伟星,微软Office认证大师,领英中国专栏作者,《竞争力:玩转职场Excel,从此不加班》图书作者,原创公众号:精进Excel(ID:SeniorExcel)
在这里体验Excel之美
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点

我要回帖

更多关于 公司合并要考虑的问题 的文章

 

随机推荐