Excel 用函数在Excel中从文本字符串提取数字

Excel 用函数在Excel中从文本字符串提取数字
Excel 用函数在Excel中从文本字符串提取数字

?当字母字符和数字字符连在一起时,如abc123或678sfr。

?当字母字符和数字字符没有连在一起时,如

问题

如何提取字母数字字符串的数字部分。例如:如果单元格A1 包含的是字符串“abc123”,则将值123 返

回单元格B1 中。

解决方案

此解决方案的基本原理是搜索并返回字母数字字符串中的第一个数字,然后只返回其后的数字。

算法

;

此解决方案包括创建公式以完成下列任务:

1. 将字母数字字符串分解为单独的字符。

2. 确定分解后的字符串中是否有数字。

3. 确定数字在字母数字字符串中的位置。

4. 计算字母数字字符串中数字的数量。

我们将分别考虑这些任务,然后将各公式整合在一起以得到最终结果。

将字母数字字符串分解为单独的字符

请在此使用MID 函数。MID 可以根据所指定的字符的数量,从所指定的位置开始,从文本字符串中返回特定数量的字符。此函数的语法是:

MID(text,start_num,num_chars)

?Text文本字符串包含的是要提取的字符。

?Start_num要从文本中提取的第一个字符串的位置。文本

中第一个字符占据start_num 1,以此类推。

?Num_chars指定要MID 从文本中返回的字符数量。

对于我们的示例,公式为:

=MID(A1,ROW($1:$9),1)

此公式可以分解字母数字字符串,并且实际上会将字符置于工作表的不同行内。例如,对于字母数字字符串abc123,其所有 6 个字符都将被分开。

注释可将数值9 适当增大为任何更大的数值,以适应更长的字符串。在此示例中,最大字符串长度为9。值得一提的是,字符串分解之后,“1”、“2”和“3”将被看作文本而不是数字。要将存储为文本的数字转换成数字,请用 1 乘以此公式,例如:

=1*MID(A1,ROW($1:$9),1)

确定分解后的字符串中是否有数字

在此我们将使用ISNUMBER 函数,此函数可以确定字母数字字符串中是否有数字。公式现在变成了:=ISNUMBER(1*MID(A1,ROW($1:$9),1))

如果字符串中有数字,则结果将为TRUE,否则结果将为FALSE。

确定数字在字母数字字符串中的位置

现在我们将通过在上一段中提到的分解后的字符串的结果中查找TRUE 值来确定数字的位置。在此我们将使用MATCH 函数。经过修改的公式现在变为:

=MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$9),1)),0)

要点必须通过按Ctrl+Shift+Enter 将此公式作为数组进行输入。

如果字符串是abc123,则此公式产生的结果将是4,这就是字母数字字符串中第一个数字字符的位置。计算字母数字字符串中数字的数量

现在的任务是计算字符串中数字的数量,以确定返回字母数字字符串中第一个数字之后要返回的字符。

如上所述,可通过用 1 与其相乘,将字母数字字符串中存储为文本的数字转换成数字。例如,

=1*MID(A1,ROW($1:$9),1)

将存储为文本的数字转换成数字之后,可以通过使用COUNT 函数对其进行计数。可通过输入以下公式计算数字的数量:

=COUNT(1*MID(A1,ROW($1:$9),1))

整合各公式

现在我们将使用MID 函数把此公式的各部分整合在一起,如以下示例所示。

=MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$9),1)),0),COUNT(1*MID(A1 ,ROW($1:$9),1)))

从本质上说,此问题可陈述为:确定第一个数字在字母数字字符串(在单元格A1 中)中的位置。返回此数字及其后的数字。

要将得到的字符转换成数字,请用 1 乘此公式。虽然对此并不严格要求,但如果要对结果执行数学运算,则应该如此操作。下面是要输入单元格B1 中的最终公式:

=1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$9),1)),0),COUNT(1*MID( A1,ROW($1:$9),1)))

要点必须通过按Ctrl+Shift+Enter 将这些公式作为数组进行输入。

更多示例

要进一步测试此公式,请将下图中的数据输入空工作表中的单元格A1:A7 中。

将此公式输入单元格B1 中,然后使用自动填充将此公式复制到单元格B2:B7 中。(不要忘记按

Ctrl+Shift+Enter。)

在此值得一提的是,如果字符串是yur09875reew,而且您使用的是已乘 1 的公式,则列 B 中的结果将是9875 而不是09875。因为0*1=0,所以0 被忽略了,返回的结果是9875。如果想得到结果09875,则不要用 1 乘以整个公式。

C字符串处理函数全

strcpy(char destination[], const char source[]); strcpy:将字符串source拷贝到字符串destination中。 strcpy函数应用举例 原型:strcpy(char destination[], const char source[]); 功能:将字符串source拷贝到字符串destination中 例程: #include #include void main(void) { char str1[10] = { "TsinghuaOK"}; char str2[10] = { "Computer"}; cout < #include void main(void) { char str1[10] = { "Tsinghua "}; char str2[10] = { "Computer"}; cout <

excel中取出字符串中的数字

excel中取出字符串中的数字 1.数据- "a12345y" 如何自动撷取其中的数字 2.数据- "12345" 如何自动只撷取其中间三个的数位(即234)放於其它格上 如果你的数据有固定的长度和格式,公式可以简单些,如,前后各有1位字母: A1="a12345y" B1=Mid(A1,2,5) 如果前后字母个数不固定: B1=MID(A1,MA TCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),),MATCH(0,0*MID(A1,ROW(IN DIRECT("1:"&LEN(A1))),1))-MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)+1) 数组公式,按Ctrl+Shift+Enter三键结束。 1、截取字符串中的一部分,用函数MID()。 A1="a12345y" 公式最外层是Mid()函数,该函数的格式是: Mid(文本,开始位置,长度) 对应公式是: MID(A1,MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),),MATCH(0,0*MID(A1,ROW(INDIR ECT("1:"&LEN(A1))),1))-MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),)+1) 2、长度=末位置-首位置+1。 其中MATCH()公式有不同的两个: 文本A1中第1个数字所在的位置:MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),) 文本A1中最后1个数字所在的位置:MATCH(0,0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)) 两个公式不同之处,在于最后一个逗号。公式什么意思先别管,你只要知道: 长度=最后1个数字的位置-第1个数字的位置+1 本例中:6-2+1=5,数字长度为5。 3、拆散字符串。 下面公式取出字符串中的每一粒字符: MID(A1,1,1)="a" MID(A1,2,1)="1" …… MID(A1,6,1)="5" MID(A1,7,1)="y" 下面公式返回的是拆散后的一串字符(数组): MID(A1,{1;2;3;4;5;6;7},1)={"a";"1";"2";"3";"4";"5";"y"} 其中{1;2;3;4;5;6;7}用ROW(INDIRECT("1:"&LEN(A1)))计算所得。 这是数组公式中的一个基本技巧,如果还不懂,请从固顶的帖子中找到并学习它。 在编辑栏中,请用鼠标选取MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1) 然后按F9可以看到上面的结果。 4、0乘以任何数都得0吗? 你一定不会怀疑。 还是在编辑栏,请继续用鼠标选择: 0*{"a";"1";"2";"3";"4";"5";"y"},或者选择: 0*MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),按F9,结果显示为: {#VALUE!;0;0;0;0;0;#VALUE!}。真的不是“都得0”。 里面除了0,还有错误值。个数与原来数组元素的个数相同。

各种字符串处理函数示例(基本)

示例 1.字符串输出示例。 程序: #include void main(void) { char str[25]={"Welcome to our city!"}; puts(str); puts("Thank you!"); } 结果: 2.字符串输入实例。(注意比较gets与scanf和puts与printf的区别)程序: #include void main(main) { char str[20]; gets(str); puts(str); printf("*********\n"); scanf("%s",str); puts(str); } 结果: 3.测字符串长度函数strlen()的使用。 程序: #include #include void main(main) { char a[10]="program";

int x,y; x=strlen(a); y=strlen("abc13"); printf("%d\n%d\n\n",x,y); } 结果: 4.字符串连接函数的使用。 程序: #include #include void main(main) { char s1[20]="Hello",s2[6]="Word"; puts(s1); puts(s2); strcat(s1,s2); printf("%s\n",s1); } 结果: 修改后 程序: #include #include void main(main) { char s1[5]="Hello",s2[6]="Word"; puts(s1); puts(s2); strcat(s1,s2); printf("%s\n",s1); } 结果:

提取excel中的一段数字、文字、符号方法

一、单元格A1中有如下内容:要提取出数字 经测试下列公式好用 提取Excel单元格中连续的数字的函数公式是: =LOOKUP(9E+307,--MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),ROW($1:$8))) 或者 =LOOKUP(9E+307,--MID(H2,MIN(FIND({0;1;2;3;4;5;6;7;8;9},H2&1234567890)),ROW(INDIRECT("1:"&LEN(H2))))) 解释一下这个公式 FIND函数——查询文本所在位置 FIND(find_text,within_text,[start_num]) FIND(需查找的文本,包含查找文本的单元格,开始查找单元格的字符位置(可选)) 此处FIND函数是搜索{1,2,3,4,5,6,7,8,9,0}数字在“A1&1234567890”中所在的位置; A1&1234567890的目的是在用FIND函数查询时,不出现错误值,使之后的MIN函数可以正常运行。 即FIND({1,2,3,4,5,6,7,8,9,0},“小王联系电话58670098负责财务1234567890”) 选取划黑后按F9,得出的位置为:{19,20,21,22,7,9,10,8,13,11} MIN函数——返回列表中的最小值 MIN(number1,number2,……) MIN(数字1,数字2,……)

将FIND所得结果{19,20,21,22,7,9,10,8,13,11}带入MIN函数,最小值所得为7,正是第一个数值出现的位置; 也正是之前FIND函数中使用A1&1234567890的原因。 MID函数——返回文本字符串从指定位置开始特定数目的字符,即提取某段字符。 MID(text,start_num,num_chars) MID(被提取的文本或单元格,开始提取的字符位置,提取的字符个数) 将上述MIN函数所得带入MID(A1,7,ROW($1:$8); ROW($1:$8)使用row函数不是用来计算行,而是借用其作为常量。当然1:8是可以修改的,只要大于数值个数就不影响结果。 --MID(……)中“--”的作用是将MID得出的结果变为数值,使其可以被LOOKUP函数查询到。 MID(……)选取划黑后按F9{"5";"58";"586";"5867";"58670";"586700";"5867009";"58670098"} --MID(……)选取划黑后按F9{5;58;586;5867;58670;586700;5867009;58670098} LOOKUP函数——从返回某个查询的值(数组形式) LOOKUP(lookup_value,array) LOOKUP(在数组中查找的值,数组范围区域)

VB常用字符串操作函数解读

VB常用字符串操作函数2009/11/25 18:321. ASC(X,Chr(X:转换字符字符码[格式]: P=Asc(X 返回字符串X的第一个字符的字符码 P=Chr(X 返回字符码等于X的字符 [范例]:(1P=Chr(65 ‘ 输出字符A,因为A的ASCII码等于65 (2P=Asc(“A” ‘ 输出65 2. Len(X:计算字符串X的长度 [格式]: P=Len(X [说明]:空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算 一个字符。 [范例]: (1 令X=”” (空字符串 Len(X 输出结果为0 (2 令X=”abcd” Len(X 输出结果为4 (3 令X=”VB教程” Len(X 输出结果为4 3. Mid(X函数:读取字符串X中间的字符 [格式]: P=Mid(X,n 由X的第n个字符读起,读取后面的所有字符。 P=Mid(X,n,m 由X的第n个字符读起,读取后面的m个字符。 [范例]: (1 X=”abcdefg” P=Mid(X,5 结果为:P=”efg” (2 X=”abcdefg” P=Mid(X,2,4 结果为 P=”bcde” 4. R eplace: 将字符串中的某些特定字符串替换为其他字符串 [格式]: P=Replace(X,S,R [说明]:将字符串X中的字符串S替换为字符串R,然后返回。[范例]:X=”VB is very good” P=Replace(X,good,nice 输出结果为:P=”VB is very nice” 5. StrReverse:反转字符串 [格式]: P=StrReverse(X [说明]:返回X参数反转后的字符串 [范例]:(1)X=”abc” P=StrReverse(X 输出结果:P=”cba” 6. Ucase(X,Lcase(X:转换英文字母的大小写 [格式]:P=Lcase(X ‘ 将X字符串中的大写字母转换成小写P=Ucase(X ‘ 将X字符串中的小写字母转换成大写 [说明]:除了英文字母外,其他字符或中文字都不会受到影响。 [范例]:(1)令X=”VB and VC” 则Lcase(X的结果为”vb and vc”,Ucase(X的结果为”VB AND VC” 7. InStr函数:寻找字符串 [格式]: P=InStr(X,Y 从X第一个字符起找出Y出现的位置 P=InStr(n,X,Y 从X第n个字符起找出Y出现的位置 [说明]:(1)若在X中找到Y,则返回值是Y第一个字符出现在X中的位置。(2) InStr(X,Y相当于 InStr(1,X,Y。(3)若字符串长度,或X为空字符串,或在X中找不到Y,则都 返回0。(4)若Y为空字符串,则返回0。 ---------------------------------------------------------------------------------------------- mid(字符串,从第几个开始,长度 ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如 mid("小欣无敌",1,3 则返回 "小欣无" instr(从第几个开始,字符串1,字符串2 ByVal 从规定的位置开始查找,返回字符

如何提取excel中的一段数字、文字、符号

一、单元格中有如下内容:要提取出数字 提取单元格中连续地数字地函数公式是: (((({}))($:$))) 或者 (((({}))((":"())))) 解释一下这个公式 函数——查询文本所在位置 (,,[]) (需查找地文本,包含查找文本地单元格,开始查找单元格地字符位置(可选)) 此处函数是搜索{}数字在“”中所在地位置; 地目地是在用函数查询时,不出现错误值,使之后地函数可以正常运行. 即({},“小王联系电话负责财务”) 选取划黑后按,得出地位置为:{} 函数——返回列表中地最小值 (,……) (数字,数字,……) 将所得结果{}带入函数,最小值所得为,正是第一个数值出现地位置; 也正是之前函数中使用地原因. 函数——返回文本字符串从指定位置开始特定数目地字符,即提取某段字符. () (被提取地文本或单元格,开始提取地字符位置,提取地字符个数) 将上述函数所得带入(($:$); ($:$)使用函数不是用来计算行,而是借用其作为常量.当然是可以修改地,只要大于数值个数就不影响结果. (……)中“”地作用是将得出地结果变为数值,使其可以被函数查询到.

(……)选取划黑后按{"";"";"";"";"";"";"";""} (……)选取划黑后按{} 函数——从返回某个查询地值(数组形式) () (在数组中查找地值,数组范围区域) 很重要地一点: 如果找不到地值,它会使用数组中小于或等于地最大值. (,……)其中指地是一个不会出现地超大值,后面有个, 又可以写成*^;那么此处搜索这个超大值,肯定无法找到,因此返回地内容将是小于或等于{}地最大值,即. 二、如果内容中除字汉子字母外只有连续地位数字 可以用一下地公式手机号都是开头地(函数从第一个字开始)假如数据在((""))或者 (("?")) 函数 实例:如果学习地革命,则公式“("地",)”返回,("地",)返回. 假设数据在列. 输入公式 ((),"")下拉复制公式 追问 我地数据在列应该在输入公式如下((),"")吗?如果是这样,没反应 回答 ((),"") 如何取出一段文字中地数字 这要分好几情况: .要取前几位,或者后几位,如果都是数值,那么可以用( )和( )函数. .要取地是中间地几位,那么可以用()函数.

acm常用字符串处理函数

sstrstr与strchar用法 原型:extern char *strstr(char *haystack, char *needle); 用法:#include 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 举例: #include #include main() { char *s="Golden Global View"; char *l="lob"; char *p; clrscr(); p=strstr(s,l); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; } 语法:int strstr(str1,str2) str1: 被查找目标string expression to search. str2:要查找对象The string expression to find. 该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0. 例子: 功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy” (假设xxx和yyy都是一个未知的字串) char *s=” string1 onexxx string2 oneyyy”; char *p; p=strstr(s,”string2”); if(!p) printf(“Not Found!”); p=strstr(p,”one”); if(!p) printf(“Not Found!”); p+=strlen(“one”) printf(“%s”,p); 说明:如果直接写语句p=strstr(p,”one”),则找到的是xxx,不符合要求 所以需采用二次查找法找到目标

如何使用电子表格excel中的提取数字常用计算公式

如何使用电子表格excel中的提取数字常用计算公式 一、年龄计算公式: =IF((YEAR(E2)=2008)*(MONTH(E2)>8),0,2008-YEAR(E2) IF(MONTH(E2)<=8,0,-1)) 其中e2为单元格,2008为当前年份 二、身份证号中提取出生年月= MID(J11, 7, 4) & "年" & MID(J11, 11, 2) & "月" & MID(J11, 13, 2)&"日" 三、班级平均分公式 =IF(COUNTIF($C$2:$C$24,J26)=0,"",SUMIF($C$2:$C$24,J26,$D$2)/COUNTIF($C$2:$C$24,J26)) 四、Excel表中身份证号码提取出生年月、性别、年龄的使用技巧 如何从Excel表中的身份证号码中提取出生年月、性别、年龄呢?看了本文就知道了。 方法一: 1.Excel表中用身份证号码中取其中的号码用:MID(文本,开始字符,所取字符数); 2.15位身份证号从第7位到第12位是出生年月日,年份用的是2位数。

18位身份证号从第7位到第14位是出生的年月日,年份用的是4位数。 从身份证号码中提取出表示出生年、月、日的数字,用文本函数MID()可以达到目的。MID()——从指定位置开始提取指定个数的字符(从左向右)。 对一个身份证号码是15位或是18位进行判断,用逻辑判断函数IF()和字符个数计算函数LEN()辅助使用可以完成。综合上述分析,可以通过下述操作,完成形如1978-12-24样式的出生年月日自动提取: 假如身份证号数据在A1单元格,在B1单元格中编辑公式 =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-"&MID(A1,11,2)&"-"& MID(A1,13,2)) 回车确认即可。 如果只要“年-月”格式,公式可以修改为 =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2),MID(A1,7,4)&"-"&MID(A1,11,2)) 3.这是根据身份证号码(15位和18位通用)自动提取性别的自编公式,供需要的朋友参考: 说明:公式中的B2是身份证号

javascript字符串处理函数汇总

javascript字符串处理函数汇总 虽然JavaScript 有很多用处,但是处理字符串是其中最流行的一个。下面让我们深入地分析一下使用JavaScript 操作字符串。 在JavaScript 中,String 是对象。String 对象并不是以字符数组的方式存储的,所以我们必须使用内建函数来操纵它们的值。这些内建函数提供了不同的方法来访问字符串变量的内容。下面我们详细看一下这些函数。 操作字符串的值是一般的开发人员必须面临的家常便饭。操作字符串的具体方式有很多,比如说从一个字符串是提取出一部分内容来,或者确定一个字符串是否包含一个特定的字符。下面的JavaScript 函数为开发人员提供了他们所需要的所有功能: ? concat() –将两个或多个字符的文本组合起来,返回一个新的字符串。 ? indexOf() –返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回-1 。 ? charA T() –返回指定位置的字符。 ? lastIndexOf() –返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。 ? match() –检查一个字符串是否匹配一个正则表达式。 ? substring() –返回字符串的一个子串。传入参数是起始位置和结束位置。 ? replace() –用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。 ? search() –执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回-1 。 ? slice() –提取字符串的一部分,并返回一个新字符串。 ? split() –通过将字符串划分成子串,将一个字符串做成一个字符串数组。

excel提取文本中数字公式

Excel提取文本中数字公式 第一种,如图,如果数字在中文的后面,那么使用公式:"=--RIGHT(A2,LEN(A2) *2-LENB(A2))"解释下:因为中文字符是占两个字节。而数字占一个字节。len 返回值是字符的个数。而lenb返回值是这个字符串占多少个字节。所以,这两个的差值就是一个有几个中文。LENB(A2)-LEN(A2) = 中文实际个数字符总数-中文个数=数字个数LEN(A2)-(LENB(A2)-LEN(A2) )=数字个数开括号数字个数=LEN(A2)*2-LENB(A2)。因为数字在右边,所以,利用RIGHT,获取从右边第一个开始到最后一个数字,就得到这个数值。 第二种:数字在中文的前面。实际上和第一种的方法是一样的,这儿只是取数字的时候,从左边开始。公式: "=--LEFT(A2,LEN(A2)*2-LENB(A2))" 第三种:混搭。这个其实就是加个判断,判断第一个字符是数字还是中文。如果是数字,那么就用上面的第二个公式,中文就用第一个公式。公式:“=IF(ISN UMBER(--LEFT(A2,1)),--RIGHT(A2,LEN(A2)*2-LENB(A2)),--LEFT(A2,LEN(A2)* 2-LENB(A2)))” ============================================= excel从特殊字符串提取指定数据

在日常工作中,常常会遇到以下的参数: 如何把直径单独提取出来,以便进行直径比较或按直径汇总。 步骤/方法 选定直径的提取单元格,输入如图所示的公式,回车即可。 下拉表格,将公式复制至其他表格,这样就完美的提取出规格数据中的直径数值,之后就可以进行数据分类和汇总了。

C语言字符串操作总结大全(超详细)

C语言字符串操作总结大全(超详细) 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 * 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 2)字符串到数值类型的转换 strtod(p, ppend) 从字符串p 中转换double 类型数值,并将后续的字符串指针存储到ppend 指向的char* 类型存储。 strtol(p, ppend, base) 从字符串p 中转换long 类型整型数值,base 显式设置转换的整型进制,设置为0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型 atoi(p) 字符串转换到int 整型 atof(p) 字符串转换到double 符点数 atol(p) 字符串转换到long 整型 3)字符检查 isalpha() 检查是否为字母字符 isupper() 检查是否为大写字母字符 islower() 检查是否为小写字母字符 isdigit() 检查是否为数字 isxdigit() 检查是否为十六进制数字表示的有效字符 isspace() 检查是否为空格类型字符 iscntrl() 检查是否为控制字符 ispunct() 检查是否为标点符号 isalnum() 检查是否为字母和数字 isprint() 检查是否是可打印字符 isgraph() 检查是否是图形字符,等效于isalnum() | ispunct()

字符串处理函数大全

字符串处理函数大全 bcmp(比较内存内容)相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp 表头文件;include 定义函数;int bcmp ( const void *s1,const void * s2,int n); 函数说明;bcmp()用来比较s1和s2所指的内存区间前n个字节,若参数n为0,则返回0。返回值;若参数s1 和s2 所指的内存内容都完全相同则返回0 值,否则返回非零值。 附加说明;建议使用memcmp()取代。 范例:参考memcmp()。 //================================================================ bcopy(拷贝内存内容)相关函数 memccpy,memcpy,memmove,strcpy,ctrncpy 表头文件;#include 定义函数;void bcopy ( const void *src,void *dest ,int n); 函数说明;bcopy()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址,不过参数src与dest在传给函数时是相反的位置。 返回值 ;附加说明建议使用memcpy()取代 范例 #include main() { char dest[30]=”string(a)”; char src[30]=”string\0string”; int i; bcopy(src,dest,30);/* src指针放在前*/ printf(bcopy(): “) for(i=0;i<30;i++) printf(“%c”,dest[i]); memcpy(dest src,30); /*dest指针放在钱*/ printf(…\nmemcpy() : “); for(i=0;i<30;i++) printf(“%c”,dest[i]); 执行 bcopy() : string string memcpy() :string sring //================================================================ bzero(将一段内存内容全清为零)相关函数 memset,swab 表头文件;#include 定义函数;void bzero(void *s,int n); 函数说明:bzero()会将参数s所指的内存区域前n个字节,全部设为零值。相当于调用memset((void*)s,0,size_tn); 返回值:附加说明建议使用memset取代

Js字符串操作函数大全

Js字符串操作函数大全 /* ****************************************** 字符串函数扩充 ****************************************** */ /* =========================================== //去除左边的空格 =========================================== */ String.prototype.LTrim = function() { return this.replace(/(^\s*)/g, ""); } /* =========================================== //去除右边的空格 =========================================== */ String.prototype.Rtrim = function() { return this.replace(/(\s*$)/g, ""); } /* =========================================== //去除前后空格 =========================================== */ String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } /* ===========================================

用函数在Excel中从文本字符串提取数字

用函数在Excel中从文本字符串提取数字 Excel输入数据过程中,经常出现在单元格中输入这样的字符串:GH0012JI、ACVB908、华升12-58JK、五香12.56元、0001#、010258等。在进行数据处理时,又需要把其中的数字0012、908、12-58、12.56、0001提取出来。 如何通过使用Excel的工作表函数,提取出字符串中的数字? 一、问题分析 对于已经输入单元格中的字符串,每一个字符在字符串中都有自己固定的位置,这个固定位置都可以用序列数(1、2、3、……)来表示,用这些序列数可以构成一个可用的常数数组。 以字符串“五香12.56元”为例:序列数1、2、3、4、5、6、7、8分别对应着字符串“五香12.56元”中字符“五”、“香”、“1”、“2”、“.”、“5”、“6”、“元”。由序列数组成一个保存在内存中的新数组{1;2;3;4;5;6;7;8}(用列的形式保存),对应字符串中的字符构成的数组{“五”;“香”;“1”;“2”;“.”;“5”;“6”;“元”}。因此解决问题可以从数组着手思考。 二、思路框架 问题的关键是,如何用序列数重点描述出字符串中的数字部分的起始位置和终止位置,从而用MID函数从指定位置开始提取出指定个数的字符(数字)。 不难看出,两个保存在内存中的新数组: {“五”;“香”;“ 1”;“2”;“.”;“5”;“6”;“元”} {1;2;3;4;5;6;7;8} 数组具有相同大小的数据范围,而后一个数组中的每一个数值可以准确地描述出字符串中字符位置。 字符与序列数的对应关系如下表所示: 字符字符位置

五—— 1 香—— 2 1 —— 3 2 —— 4 . —— 5 5 —— 6 6 —— 7 元—— 8 所以解决问题的基本框架是: 用MID函数从字符串的第一个数字位置起提取到最后一个数字止的字符个数。即{=MID(字符串,第一个数字位置,最后一个字符位置-第一个字符位置+1}。其中“+1”是补上最后一个数字位置减去第一个数字位置而减少的一个数字位。 三、解决方案及步骤 假定字符串输入在A2单元格。 ⑴确定A2中字符串的长度。 即用LEN函数计算出A2中字符串中字符的个数,这个字符个数值就是字符串中最后一个字符在字符串中的位置:=LEN(A2)。 ⑵确认字符串中的每一个字符位置序列数组成的新数组。 用INDIRECT函数返回一个由文本字符串指定的引用:

(完整版)vb_字符串处理函数大全

mid(字符串,从第几个开始,长度)ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如mid("坦然面对",1,3) 则返回"坦然面" instr(从第几个开始,字符串1,字符串2)ByVal 从规定的位置开始查找,返回字符串2在字符串1中的位置 例如instr(1,"坦然面对","坦") 则返回1,instr(2,"坦然面对","坦"),则返回0 。0 表示未找到 InStrRev(字符串1,字符串2,从第几个开始) ByVal 从规定的位置开始,从后住前查找,返回字符串2在字符串1中的位置,此处注意,虽是从后住前查找,但是返回的值还是从前往后算的。 例如instrRev("坦然面对","坦",2) 则返回2 ; instrRev("坦然面对","然",1) 则返回0 ,因为它从"坦然面对"的第1个字开始往前查找,所以找不到。0 表示未找到 left(字符串,长度) ByVal 从[字符串]的左边开始返回[长度]个字符 例如Left("坦然面对",3) 则返回"坦然面" right(字符串,长度) ByVal 从[字符串]的右边开始返回[长度]个字符 例如Right("坦然面对",3) 则返回"然面对" ucase(字符串) ByVal 返回[字符串]的大写形式,只对英文字符有效 例如ucase("tanRANmiAnDui") 则返回"TANRANMIANDUI" lcase(字符串) ByVal 返回[字符串]的小写形式,只对英文字符有效 例如lcase("tanRANmiAnDui") 则返回"tanranmiandui" asc(字符) Byval返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii编码,和Chr()函数是一个可逆的过程 例如asc("坦") 则返回-13127; asc("坦然面对") 也返回-13127 chr(ASCii编码) Byval 返回[Ascii]编码所代表的字符,和Chr()函数是一个可逆的过程 例如chr(-13127) 则返回"坦" ;chr(asc("坦")) 则返回"坦"(这里是为了说明asc和chr的可逆性,例用此特性可以加密文本) trim(字符串) Byval 返回去掉了前、后之后的[字符串] 例如trim("坦然面对") 则返回"坦然面对" ,中间的空格不受任何影响 string(个数,字符) Byval 返回[个数]个[字符] 例如string(3,"坦") 则返回"坦坦坦" , 而string(3,"坦然面对") 也返回"坦坦坦",只有首字符才有效 space(个数) Byval 返回[个数]个空格 例如space(5) 则返回""

Excel轻松提取网上数据

网上信息采集工作,最头疼的便是从网页上一次次很枯燥地进行数据表格的复制,而且在复制过来之后还要进行很多修改,不但麻烦而且也很浪费时间,工作效率大打折扣。这时我们不妨用功能强大的Excel来试着解决一下问题。 对于比较规范的表格数据,我们完全可以在表格页面上点击右键,选择"导出到Microsoft Office Excel"(图1),此时系统会自动打开Office Excel,进行数据加载。这个过程仅需要几秒钟就把数据加载进来(图2)。如果你认为数据比较适合你的编辑要求,那么就可以直接保存了。否则,也可以做一下适当的修改,因为在表格处理方面,Excel要大大优于word。 图1 在网上表格或数据采集这一点上,Excel往往是较为智能化的,它在进行数据采集与加载时,只加载表格固定区域内的数据,而不是把整个网页都加载进来。这一点我试过很多次,都是很听话的,请看图片2的效果。

图2 当然,在网页中也有一些不太规范的数据与表格,这样的数据,Excel处理起来,稍稍有一点难度,不过只要熟悉Excel 的操作功能的话,还是可以轻松搞定的。先看一下这个页面(图3), 图3 图3这种不规范的页面数据,如果让Excel处理起来就会出现这样的结果(图4),看着是不是感觉很乱,所有的东西都错位了,一般的人会感到速手无策的。主要原因就是多出了文件数据的开头与结尾。

图4 不过,只要我们删除文件上下两头的不规范的区域,剩下的这些数据不就变得好处理了吗?这时,我们再执行一下菜单:"数据――分列――下一步",这样就可以把不规范的数据变得规范了。这是处理之后的结果(图5) 图5 对于那些本来就比较规范的表格,就简单得多了,只要执行"导出加载――略修――保存"就可以了。

C#所有处理字符串函数和用法

C#字符串函数大全 C#字符串函数大全将包括Len Len(string|varname) 、Trim Trim(string) 、Ltrim Ltrim(string)等多项内容 LenLen(string|varname)返回字符串内字符的数目,或是存储一变量所需的字节数。 TrimTrim(string)将字符串前后的空格去掉 LtrimLtrim(string)将字符串前面的空格去掉 RtrimRtrim(string)将字符串后面的空格去掉 MidMid(string,start,length)从string字符串的start字符开始取得length长度的字符串,如果省略第三个参数表示从start字符开始到字符串结尾的字符串 LeftLeft(string,length)从string字符串的左边取得length长度的字符串 RightRight(string,length)从string字符串的右边取得length长度的字符串 LCaseLCase(string)将string字符串里的所有大写字母转化为小写字母 UCaseUCase(string)将string字符串里的所有大写字母转化为大写字母 StrCompStrComp(string1,string2[,compare])返回string1字符串与string2字符串的比较结果,如果两个字符串相同,则返回0,如果小于则返回-1,如果大于则返回1 InStrInStr(string1,string2[,compare])返回string1字符串在string2字符串中第一次出现的位置 SplitSplit(string1,delimiter[,count[,start]])将字符串根据delimiter拆分成一维数组,其中delimiter用于标识子字符串界限。如果省略,使用空格("")作为分隔符。

EXCEL单元格中的唯一数字如何提取出来

单元格中的唯一数字如何提取出来? 一个数值和文字混排的单元格,如何计提数值参与计算?发哥gvntw给出了一个巧妙的公式: =LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9 },A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1))))) 1、FIND()告诉我,0-9在文本中第一次出现的位置。 用Find()在指定的文本中查找0-9,会返回第一次出现的位置,如果没有会返回一个错误值,聪明的gvntw,在文本后面连接上1234567890,让Find()不再有借口返回错误值,请放心,它不会影响后面的结果。在编辑栏中,像下面一样,用鼠标将这一段文本抹黑,然后按F9。 =LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9 },A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1))))) 2、对着Min(),王小丫说:恭喜你,答对了,第一个数字在第3位。 如果你还怀疑,可以这再次抹黑,并按F9。 =LOOKUP(9E+307,--MID(A1,MIN({7;8;5;12;13;3;4;16;17;18 }),ROW(INDIRECT("1:"&LEN(A1))))) 3、神奇魔术师Mid() ,一个文本变出许许多多。 让事实说话,继续抹抹黑,按F9。开始位置不变,长度依次

增1,形成一个数组,数组的个数等于文本长度(Row()的结果)。后面的会出现相同的情况,没关系,还是不影响结果的。=LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT("1:"&LEN( A1))))) 4、如果忽略了--,还是功亏一篑。 看看,它的结果会是什么呢? =LOOKUP(9E+307,--{"5";"56";"562";"562.";"562.0";"562.00"; "562.00元";"562.00元";"562.00元"}) 5、Lookup() 总是那么沉着,他闭着眼睛说,我就要最后面那个数字。 =LOOKUP(9E+307,{5;56;562;562;562;562.00;#V ALUE!;#V A LUE!;#V ALUE!}) 9E+307 是一个非常大的数,在任何时候都适用,如果你知道你的文本中最大数的范围,比如1000,文本中的数字不会超过1000的,那么,这个数字你用1000,也是行的,即:Lookup(1000,……) 9E+307是什么概念? 9E+307是科学记数,用普通记数法写是9后面有307个0, 9E+307就是9*10^307 在构思解题思路时,就有,把那串文本从第一个数字开始,

相关文档
最新文档