2022-09-29 17:56
在实际的生产开发需求中很多时候生产数据不一定是通过数据库进行导入,而是通过Excel表格的形式传入形式,这时候需要程序员进行自动化的导入。
手动导入数据库,效率相对来说太慢,因此需要使用技巧,实现批量的由数据Excel表格中进行批量导入数据库。
具体操作流程:
在数据库中进行insert操作,仅仅需要将excel中的表格数据进行批量组装即可
1.待插入数据如下:
2.编辑单元格公式:
3.直接将公式进行下拉:
将单元格内的SQL语句进行粘贴到文本直接在nvicat终端执行即可。
2022-09-29 17:24
Excel 中的函数嵌套最多可有 7 层。
对于 IF(),有些时候可以配合AND(),OR()来解决多层次问题。
不过有些时候用它们是解决不了的,这就需要我们考虑其它的方法。
最开始,我还以为只有 IF() 函数有 7 层嵌套问题,后来用想用 CHOOSE() 替换 IF() 时,才发现 CHOOSE() 也不能做大于 7 层的嵌套。
最后得出:Excel 中可能所有函数都不能超过7层嵌套。
先看看 IF() 函数的语法:
IF(logical_test,value_if_true,value_if_false),
这里要研究的是 logical_test ,它只能返回 TRUE 或 FALSE ,
而 Excel 中 TRUE 值为1, FALSE 值为0,不过要想体现出 1 和 0 ,
必须对 TRUE 和 FALSE 作加 0 或 乘 1 之类的操作(也就是说把类型转换一下)。
再一点,也是非常关键的一点是:
对于IF()结构来说,只要遇到 logical_test 为 TRUE(按照条件的顺序) ,则结束判断。
原理清楚了之后,就开始实际操作了:
首先,把条件按顺序陈列出来。
比如:A1<-50,-50<=A1<0,A1=0,0<A1<50,...
相当于:IF(A1<-50,...,IF((A1>=-50)*(A1<0),...,IF(A1=0,...,IF((A1>0)*(A1<50),...,...))))
说明:这里的 * 含义为 AND , 之所以用它,是因为将用到数组公式。
写到这里就差不多了,最后要做的就是:使条件和结果对应起来。
根据刚才说的,只要遇到条件为 TRUE(按照条件的顺序) ,则结束判断。
所以我们要找到第一个满足条件的位置。
先给个例子:
{=MIN(IF({TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE}+0={1,1,1,1,1,1,1,1,1},{1,2,3,4,5,6,7,8,9}))}
这里的{TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE}即为条件,共有九个;
{1,1,1,1,1,1,1,1,1}相当于一个全是 TRUE 的数组(这是为了方便,完全可以用TRUE替换);
{1,2,3,4,5,6,7,8,9}是满足条件对应的操作(这里只是简单的数值)。
MIN()目的是为了找到第一个满足条件的位置。
这里有个问题,就是如果条件都为 FALSE 时,则 MIN() 返回0,
这是因为没有与全不满足条件对应的项,
如果再加个判断条件,就显得冗余了,
简单的办法是对单元个设置 自定义数字格式 , 对 0 位置设置格式即可。
比如:...;...;"数据未找到"
上面的例子是一个标准的IF()结构,如果想让条件为 FALSE 时,执行相应的操作,只要把{1,1,1,1,1,1,1,1,1}中的1换成0即可
IF(条件,真,假)&IF(条件,真,假)&
IF(条件,真,假)&..............
其中假为空,即输入""(两个双引号)
=(I3/D3>=73.08)*7+(AND(I3/D3<73.08,I3/D3>=69.03))*6.5+(AND(I3/D3<69.03,I3/D3>=64.5))*6
或
一个单元格实现
)(数组形式输入)。
或
将七层之外的IF语句,放在另外的单元格内来处理,例:C5=if(if,...,(if...),B5))),B5单元格就是存放七层之外的IF语句。依此类推,可以实现在数据库语言中CASE语句的功能。
当然,对于初学者会有一些困难。
这里给出一个解决IF函数嵌套超出范围的方法,可能比较容易使初学者看懂。其思路是:一个单元格做不了的事,分给两个或更多的单元格来做,文字内容是这样,函数内容也是这样。
例子:假如 A1=1,则 B1=A;A1=2,则 B1=B …… A1=26,则 B1=Z
解决方法如下:
根据情况,可以将 C、D、E 这些从事辅助运算的单元格放在其它任何地方,或
一个单元格也可以实现!
2022-09-29 17:24
将下图三个不同工作簿“1组”“2组”“3组”中的工作表合并在同一工作簿的单张工作表中。
操作步骤
1 任意打开一个工作簿中,如“1组”,可以看到里面的工作表“1组成绩”。
2 在“数据”选项卡下单击“合并表格”按钮。
3 在弹出的列表中选择“合并成一个工作表”选项。
4 在弹出的“合并成一个工作表”对话框中,已默认选中了我们前面打中的工作簿“1组”中的工作表“1组成绩”,单击“添加文件”按钮,继续添加文件。
5 在弹出的“打开”对话框中,找到要合并的其它工作簿,选中工作簿“2组”“3组”,单击下方的“打开”按钮。
6 返回“合并成一个工作表”对话框,可见3个工作簿中的工作表已全部被选中。
7 将“从第几行开始合并”编辑框中默认的“1”改成“2”(第1行为标题行,不需重复合并),再单击“开始合并”(会员功能)。
8 工作簿合并完成后会生成一张新的工作簿“工作簿1”,里面有2张工作表“报告”和“总表”。“报告”显示的是合并的整体情况,切换到“总表”可以看到合并的具体情况,可见原先分布在3个不同工作簿中的3张工作表内容全都合并在了“总表”之中。
2022-09-29 17:24