精华内容
下载资源
问答
  • 大家好,今天一起分享Excel中常见的信息提取方式,比如提取字符串的...一:按要求位置提取文本信息【例】A2单元格的省份证信息中提取前六位到B2单元格,提取7到14位到C2单元格,最后提取最后4位到D2单元格。操作:...

    大家好,今天一起分享Excel中常见的信息提取方式,比如提取字符串的前几位、中间几位或者后面的几位;比如提取文本中随机位置的特定信息;又比如将单元格信息提取后在多个单元格内单独显示,相信在经过这篇文章的阅读后,能找个很好的解决办法,帮助到大家的日常工作。

    d582ced06d25d52739dc17b6f5dc2f5a.png

    一:按要求位置提取文本信息

    【例】从A2单元格的省份证信息中提取前六位到B2单元格,提取7到14位到C2单元格,最后提取最后4位到D2单元格。

    操作:在B2单元格输入公式“=LEFT(A2,6)”;在C2输入公式“=MID(A2,7,8)”;最后在D2单元格输入公式“=RIGHT(A2,4)”,回车,完成。

    f8f560b21afab23d78937181c5b1093d.png

    析:这里用到三个提取信息的基本函数,分别是LEFT、RIGHT和MID函数。以上3个函数分别是指:从A2单元格信息左侧提取6个字符;从第七位开始,提取8个字符;从右侧开始,并提取4个字符。

    二:提取文本中要求的信息

    【例】单元格A2:A6中是从WORD文档中复制来的员工某日的生产信息,请将员工姓名和当日工资,提取到B2:C6中。

    操作:在B2单元格输入公式“=MID(A2,FIND("间",A2)+1,FIND("生",A2)-1-FIND("间",A2))”,回车后提取员工姓名。

    d9a25736c27d64f9c3fb1e71cffff4ea.png

    析:(1)通过A列对文本信息的观察发现,员工姓名位于字符“间”和“生”之间,只要通过FIND函数查找出两个字符的位置,便可套用MID函数对字符间的信息进行提取。

    (2)公式的含义是指从A2文本信息“间”的位置往后开始,提取截止到“生”之前信息,也就是员工姓名的信息。

    (3)用同样的方法可以提取字符“资”和“元”之间的工资信息。

    三:依次提取文本信息,并单独存放

    【例】提取A列数值信息,按会计凭证的方式存放在B:H列中。

    操作:在B2单元格输入公式“=LEFT(RIGHT(" ¥"&$A2*100,8-COLUMN(A2)),1)”,回车,往右填充到H2,完成操作。

    ecdd9438cad1964e7abcf8639a8543b2.png

    析:

    由于A列数字小数点的存在占据字符位数,需要乘以100,将数字化为整数,消除小数点的影响。在往右填充时,应锁定A2单元格的列,往下填充时应活动行,所以这里A2单元格采用绝对引用列的形式:$A2。以第二行23.64为例,公式“RIGHT(" ¥"&$A2*100,8-COLUMN(A2))”中COLUMN(A2)是指A2是第几列,也就是1。代入运算后结果为“RIGHT(“ ¥2364”,8-1),是指从字符“ ¥2364”右侧开始提取7位,因为原字符只有6位(注:人民币符号¥前需输入一空格),所以仍返回原字符,最后用LEFT函数从从左侧提取第一位字符,也就是空格。当公式往右拖动,例如拖动到F2单元格时,公式会变为=LEFT(RIGHT(" ¥"&$A2*100,8-COLUMN(E2)),1),这里的COLUMN(A2)会顺序变成COLUMN( E2),也就是E2的列值5。代入后公式运算结果为“=LEFT(RIGHT(“ ¥2364”,8-5),1),RIGHT函数从右侧提取3位,为“364”,然后LEFT函数从字符“364”左侧提取1位,也就是3,填入F2。

    9b8610bb0b8d10b8e96d6ec5c71dfbe7.png

    欢迎大家共同交流EXCEL使用技巧,如果有EXCEL使用疑问,欢迎留言讨论或者联系我,希望能第一时间帮助大家,争取第一时间回复!

    展开全文
  • 粉丝问:如何从文本杂乱无章的表格中,批量提取字符?小编答:先找出规律,再确定提取的方法粉丝:没有规律,每个单元格字符不一样多,提取的字符位置也不同小编:截图或或者把文件发给我经小编去除隐私信息后的截图...

    粉丝问:如何从文本杂乱无章的表格中,批量提取字符?

    小编答:先找出规律,再确定提取的方法

    粉丝:没有规律,每个单元格字符不一样多,提取的字符位置也不同

    小编:截图或或者把文件发给我

    经小编去除隐私信息后的截图如下:

    f70e5b6a55b11292a4aa1018549659c6.png

    仔细观察并非杂乱没有规律:

    规律一:编号都是7位字符

    规律二:编号前面都有一个关键字【项目】

    规律三:编号后面都有一个关键字【已】

    找出来后就可以确定使用什么方法提取字符了

    方法一:公式法

    在D4单元格输入公式:=MID(C4,FIND("项目",C4)+2,7) ,回车键确认公式

    再选中D4单元格,双击单元格右下角向下填充公式,完成全部提取

    2735fb6917e04353a63bd875ea32a12d.png

    方法二:快捷键功能法

    选择把项目数据复制到要提取的位置

    4841d59e4851ee7f8e9c6d1ec76ffa4b.png

    按Ctrl+H键调出查找替换窗口,查找内容输入【*项目】,替换内容空,点击【全部替换】按钮

    6452ee11d9e8eb72b37f55861ba363bb.png

    查找内容再输入【已*】,替换内容还是空,再点击【全部替换】按钮,最后【关闭】,得到需要提取的字符

    b69bb7f2a7dd9998d01dd61bb61d2bc0.png

    你学会了吗?坚持原创不易,点赞转发就是对小编最大的支持,更多教程点击下方专栏学习。

    展开全文
  • 粉丝问:如何从文本杂乱无章的表格中,批量提取字符?小编答:先找出规律,再确定提取的方法粉丝:没有规律,每个单元格字符不一样多,提取的字符位置也不同小编:截图或或者把文件发给我经小编去除隐私信息后的截图...

    粉丝问:如何从文本杂乱无章的表格中,批量提取字符?

    小编答:先找出规律,再确定提取的方法

    粉丝:没有规律,每个单元格字符不一样多,提取的字符位置也不同

    小编:截图或或者把文件发给我

    经小编去除隐私信息后的截图如下:

    d586dbc76d7432ddef22da3cc190f466.png

    仔细观察并非杂乱没有规律:

    规律一:编号都是7位字符

    规律二:编号前面都有一个关键字【项目】

    规律三:编号后面都有一个关键字【已】

    找出来后就可以确定使用什么方法提取字符了

    方法一:公式法

    在D4单元格输入公式:=MID(C4,FIND("项目",C4)+2,7) ,回车键确认公式

    再选中D4单元格,双击单元格右下角向下填充公式,完成全部提取

    34f781b60f63b27dde811b4c6428959a.png

    方法二:快捷键功能法

    选择把项目数据复制到要提取的位置

    45fa67f461a768d807eb3f158737fd50.png

    按Ctrl+H键调出查找替换窗口,查找内容输入【*项目】,替换内容空,点击【全部替换】按钮

    93f2332acfc5a92b36c3fd1aac6564d1.png

    查找内容再输入【已*】,替换内容还是空,再点击【全部替换】按钮,最后【关闭】,得到需要提取的字符

    67c950f5bd1d92058ed77af364a5285f.png

    你学会了吗?坚持原创不易,点赞转发就是对小编最大的支持,更多教程点击下方专栏学习。

    展开全文
  • 身份证号码中提取出生年月日 身份证号码中提取出性别 身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    身份证号码中提取出生年月日 身份证号码中提取出性别 身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和...
  • 5.2.1 确定单元格中是否包含文本 5.2.2 使用字符代码工作 5.2.3 确定两个字符串是否相同 5.2.4 连接两个或多个单元格 5.2.5 把格式化的值显示成文本 5.2.6 把格式化的货币值显示为文本 5.2.7 计算字符串中的...
  • 5.2.1 确定单元格中是否包含文本 5.2.2 使用字符代码工作 5.2.3 确定两个字符串是否相同 5.2.4 连接两个或多个单元格 5.2.5 把格式化的值显示成文本 5.2.6 把格式化的货币值显示为文本 5.2.7 计算字符串中的...
  • Excel中文件会以文本形式一行行显示,单元格之间转换为逗号 钉钉导出的数据为.xls格式,这里我们需要打开.xls表格并另存为.csv格式,我们采用一行行读取数据 思路如下: 1)提取总时长 根据钉钉导出数据的格式,...

    每场钉钉直播都可以导出数据,记录着直播总时长与观看的人员及时长和未观看的人员,接下来的介绍是针对多个导出的Excel文件进行总数据收集。

    csv格式:

    Excel中文件会以文本形式一行行显示,单元格之间转换为逗号

    从钉钉导出的数据为.xls格式,这里我们需要打开.xls表格并另存为.csv格式,我们采用一行行读取数据
    思路如下:

    1)提取总时长

    根据钉钉导出数据的格式,参考转化后的.csv格式文件的内容,用文本文件打开转格式后的.csv文件,很容易知道,在csv中第五行第四个逗号后面的内容即为本场直播的总时长,格式为固定的 hh:mm:ss,我们以分钟为单位提取出来

    2)提取观看者及观看时长

    观察csv文件,也易知第九行为第一个学生的名字,第一个逗号为观看者的姓名,第二个逗号后面为观看者观看的时长,时长分为两种:
    1.xx小时xx分钟
    2.xx分钟
    用分支语句以两种方式提取
    然后继续读取下一行,即下一个观看者的数据

    3)提取未观看者的信息

    观察csv文件,易知在未观看学生一行的上面有固定两行逗号
    未观看学生一行下面的信息有两种情况
    1.有未观看者,即在下面出现未观看者的信息,提取第一个逗号前的名字,继续读取下一个行,遇到一行逗号截止
    2.无未观看者,即在下行就只有一行逗号

    使用方法

    按1输入你的csv文件名,会输出当前文件的观看信息,即截止目前(即前面输入的所有文档数据)的总观看数据,
    按2输出总观看数据
    按3输出到Excel表格中
    在这里插入图片描述
    这里记住都要与生成的.exe程序放在同一个目录下:
    在这里插入图片描述

    源码附录:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    struct Mess
    {
    	char name[50];
    	int time;//分钟为单位 
    	int all; 
    }mess[1000]; 
    int Mess_SearchByIndex(int id);//查找姓名
    void Mess_Display();//输出截止目前观看者的信息 
    void Mess_out();//将截止目前汇总的信息导入Excel文件中
    void IO_ReadInfo();//读出文件 
    void IO_WriteInfo();//读入文件 
     
    int num=0;
    
    
    int Mess_SearchByIndex(char *a)
    {
         int i;
         for (i=0;i<num;i++)
         {
             if (strcmp(a,mess[i].name)==0)
             {
                  return i;
             }
         }
         
         strcpy(mess[num].name,a);
         mess[num].time=0;
         mess[num].all=0;
         num++;
         return num-1;
    }
    
    void Mess_Insert()
    {
    	FILE *fp;
    	int time1=0;
    	char da[100];
    	char filename[100];
    	printf("请输入你的csv文件名:\n");
    	scanf("%s",filename);
    	fp=fopen(filename,"r");
    	if(!fp)
    	printf("shibai");
    	int timeall=0;
    	int count=0;
    	for(int i=0;i<=7;i++)
    	{
    		fscanf(fp,"%s",da);
    		if(i==4)
    		{
    			int j=i;
    			while(1)
    			{
    				j++;
    				if(da[j]==',')
    				count++;
    				if(count==4)
    				{
    				timeall=(da[j+2]-'0')*60+(da[j+4]-'0')*10+da[j+5]-'0';	
    				break;
    				}
    			}
    		}
    		
    	}
    	while(1)
    	{
    		fscanf(fp,"%s",da);
      		int time1=0;
    		char name1[5]="";
    		int i=0,flag=1;
    		if(strcmp(da,",,,,,,,,,,")==0)//记录未观看同学的 
    		{
    			fscanf(fp,"%s",da);
    			fscanf(fp,"%s",da);
    		L2:	fscanf(fp,"%s",da);
    			if(strcmp(da,",,,,,,,,,,")!=0)
    			{
    				int i=0;
    				while(1)
    				{
    					i++;
    					if(da[i]==',')
    					{
    						strncpy(name1,da,i);
    						printf("%s       0\n",name1);
    						int k= Mess_SearchByIndex(name1);
    	   	   				mess[k].time+=0;
    						break;
    					}
    				}
    				goto L2;//继续读入下一行
    			}
    			break;
    		} 
    		
    		
    		while(1)
    		{
    			if(da[i]==','&&flag)
    			{
    				strncpy(name1,da,i);
    				printf("%s",name1);
    				flag++;
    			}
    			i++;
    			 if(da[i]==','&&flag==2)
    			{
    				if(da[i+8]==',')//只有分钟 
    				{
    					i++;
    					do{
    						time1=time1*10+da[i]-'0';
    						i++;
    					}while(da[i]>='0'&&da[i]<='9');
    					
    				}
    				else//有小时和分钟 
    				{
    					i++;
    					int k=(da[i]-'0')*60;
    					i+=5;
    					do{
    						time1=time1*10+da[i]-'0';
    						i++;
    					}while(da[i]>='0'&&da[i]<='9');
    					time1+=k;
    				}
    				printf("      %d\n",time1);
    				goto L1;
    			}
    			
    		}
    	   L1:{
    	   	   int k= Mess_SearchByIndex(name1);
    	   	   mess[k].time+=time1;
    	   	   
    	   }
    	}
    	for(int i=0;i<num;i++)
    	{
    		mess[i].all+=timeall;
    	}
          fclose(fp); 
        
    }
    
    void Mess_Display()
    {
        int i;
        while(1)
        {	        
            for(int i=0;i<num;i++)
            {
            	printf("%-8s 总观看时间:%3d分钟   总时间:%d\n",mess[i].name,mess[i].time,mess[i].all);
    		}
            break;
        }
    }
     
    void Mess_out()
    {
    	int i;
    	printf("请输入你要导出的Excel文件名:\n");
    	char a[50];
    	scanf("%s",a);
    	FILE *fq;
    	fq=fopen(a,"w");
        while(1)
        {	        
            for(int i=0;i<num;i++)
            {
            	fprintf(fq,"%-8s\t 总观看时间:   \t %d分钟\t   总时间:\t%d \n",mess[i].name,mess[i].time,mess[i].all);
    		}
            break;
        }
        fclose(fq);
    }
    void IO_ReadInfo()
     
    {
     
         FILE *fp;
         int i;
     
         if ((fp=fopen("c:\\message.txt","rb"))==NULL)
         {
             printf("不能打开文件!\n");
             return;
         }
     
     		fread(&num,sizeof(int),1,fp);
      
            for(i=0;i<num;i++)
             {
                  fread(&mess[i],sizeof(struct Mess),1,fp);
             }
         
    		
         fclose(fp);
    }
    
    void IO_WriteInfo()
    {
         FILE *fp;
         int i;
         if ((fp=fopen("c:\\message.txt","wb"))==NULL)
         {
             printf("不能打开文件!\n");
             return;
         }
    	 
         if (fwrite(&num,sizeof(int),1,fp)!=1)
         {
           printf("写入文件错误!\n");
         }
         for (i=0;i<num;i++)
         {
             if (fwrite(&mess[i],sizeof(struct Mess),1,fp)!=1)
             {
                  printf("写入文件错误!\n");
             }
         }    
         fclose(fp);
    }
     
    int main()
    {
     	
         int choice;
     
         IO_ReadInfo();
     
         while(1)
     
         {
     
             /*主菜单*/
     
             printf("\n------ 学习计时系统------\n");
      
             printf("1. 学生观看信息录入\n");
     
     		 printf("2. 学生观看信息输出\n");
     		 
     		 printf("3. 导出Excel文件\n");
     		 
             printf("4. 退出\n");
     
             printf("请选择(1-4):");
     
             scanf("%d",&choice);
     
             getchar();
     
             switch(choice)
     
             {
     
             case 1:
     
                  Mess_Insert();
     
             case 2:
     
                  Mess_Display();
     
                  break;
    
    		 case 3: 
    			  Mess_out();
     		 	  break;
     
     		 case 4:
     		 	
     		 	  return 0;
     		
             }
     
             IO_WriteInfo();
     
         }
     	return 0;
    }
    
    

    具体数据涉及到他人隐私,此处没有给出具体过程
    在这里插入图片描述

    展开全文
  • 【删除空单元格】:删除选区的空单元格后面的数据自动上升 【转置选区】:将选区行列调换 【按列倒置】:将选区的数据横向倒置 【按列倒置】:将选区的数据纵向倒置 【字母大小写转换】:将选区的单词、字母...
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    【删除空单元格】:删除选区的空单元格后面的数据自动上升 【转置选区】:将选区行列调换 【按列倒置】:将选区的数据横向倒置 【按列倒置】:将选区的数据纵向倒置 【字母大小写转换】:将选区的单词、字母在大写...
  • Excel百宝箱

    2012-10-27 17:09:21
    【删除空单元格】:删除选区的空单元格后面的数据自动上升 【转置选区】:将选区行列调换 【按列倒置】:将选区的数据横向倒置 【按列倒置】:将选区的数据纵向倒置 【字母大小写转换】:将选区的单词、字母在大写...
  • Excel百宝箱8.0

    2011-06-07 21:32:17
    【删除空单元格】:删除选区的空单元格后面的数据自动上升 【转置选区】:将选区行列调换 【按列倒置】:将选区的数据横向倒置 【按列倒置】:将选区的数据纵向倒置 【字母大小写转换】:将选区的单词、字母在大写...
  • Excel新增工具集

    2011-12-20 09:30:27
    10、检查两列同行两单元格是否相同:由ID号意义相同的表向主表合并列记录时,往往先将表记录粘贴到主表中,然后删除表中的ID等与主表重复的列记录,本命令用来比较两列同行单元格(ID号)是否相同。 (九)工作...
  • 【繁简转换】 可视化的繁简体GB与BGK码以及GB2与BIG5码相互转换,可以复制文本到当前窗体中文本进行转换,也可以实现单个文件或批量文件的转换。在窗体中双击文本字符串尾即可实现自动选定文本并自动复制功能。本...
  • 【繁简转换】 可视化的繁简体GB与BGK码以及GB2与BIG5码相互转换,可以复制文本到当前窗体中文本进行转换,也可以实现单个文件或批量文件的转换。在窗体中双击文本字符串尾即可实现自动选定文本并自动复制功能。本...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    常 用 工 具 【繁简转换】 可视化的繁简体GB与BGK码以及GB2与BIG5码相互转换,可以复制文本到当前窗体中文本进行转换,也可以实现单个文件或批量文件的转换。在窗体中双击文本字符串尾即可实现自动选定文本并自动...
  • 【繁简转换】 可视化的繁简体GB与BGK码以及GB2与BIG5码相互转换,可以复制文本到当前窗体中文本进行转换,也可以实现单个文件或批量文件的转换。在窗体中双击文本字符串尾即可实现自动选定文本并自动复制功能。本...
  • 常 用 工 具 【繁简转换】 可视化的繁简体GB与BGK码以及GB2与BIG5码相互转换,可以复制文本到当前窗体中文本进行转换,也可以实现单个文件或批量文件的转换。在窗体中双击文本字符串尾即可实现自动选定文本并自动...
  • 修改高级表格支持库,允许“复制选定文本()”“剪切选定文本()”在“允许选择块”属性为假时复制剪切当前单元格中的文本。 18. 修改扩展界面支持库三,为“高级选择夹”增加“不点燃选中子夹”属性。 19. 修改XML...
  • 另:别人写的,不记得哪里下的了: 目录 Word查找与替换•ASCII字符集代码 I Word查找栏代码•通配符一览表 II Word查找栏代码•通配符示例 III Word替换栏代码•通配符一览表 IV 部分代码 可用/不可用 的特殊...
  • Visual C++ 2005 入门经典 详细书签版

    热门讨论 2013-02-02 16:39:43
    此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为C++高效程序员。...   作译者  Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问及撰写工作,曾帮助无数程序员步入编程的殿堂。他...
  • 此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为C++高效程序员。...   作译者  Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问及撰写工作,曾帮助无数程序员步入编程的殿堂。他...
  • 此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为c++高效程序员。.  本书学习目标  ◆ 使用标准模板库(stl)来组织和操作本地c++程序中的数据  ◆ c++程序调试技术..  ◆ 构造microsoft windows应用...
  • Visual C++ 2008入门经典--详细书签版

    热门讨论 2013-02-02 16:07:15
    此外,本书各章后面的习题将有助于读者温故而知新,并尽快成为c++高效程序员。.  本书学习目标  ◆ 使用标准模板库(stl)来组织和操作本地c++程序中的数据  ◆ c++程序调试技术..  ◆ 构造microsoft windows应用...
  • 人力资源管理软件(完全免费)

    热门讨论 2011-03-08 11:36:20
    支持中控、依时利、舒特、文本接口等多种考勤机 绿色软件,安全方便 单机永远免费,升级免费 人力资源管理软件人事档案功能介绍 人事档案管理 支持分公司管理(人力资源软件) 员工综合报告,员工相关的各类信息...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

从单元格后面提取文本