在 Excel 中的贮存格内容常会是数字和非数字夹杂,若何能找出某个贮存格中tuanjian个非数字的位置呢?(参考下图)
【公式设计与解析】
先假定贮存格内容不会跨越 20 个字元构成。
贮存格B2:{=MATCH(FALSE,ISNUMBER(VALUE(MID(A2,ROW($1:$20),1))),0)}
这是阵列公式,输入完成要按 Ctrl+Shift+Enter 键,Excel 会主动发生「{}」。
(1) MID(A2,ROW($1:$20),1))
在阵列公式中,操纵 ROW(1:20) 来取得 {1,2,3,4,5,..,20},再利用 MID 函数掏出贮存格中的每个字元。
(2) VALUE(MID(A2,ROW($1:$20),1))
将第(1)式传回的每个字元操纵 VALUE 函数转换为数字,但如果是字元非数字,则会发生毛病讯息。本例传回:{1,2,3,#VALUE!,#VALUE!,#VALUE!, … ,#VALUE!}。
(3) ISNUMBER(VALUE(MID(A2,ROW($1:$20),1)))
操纵 ISNUMBER 函数判定第(2)式的成果是不是为数字,本例传回:{TRUE,TRUE,TRUE,FALSE,FALSE,FALSE, … ,FALSE}。
zui后操纵 MATCH 函数找出tuanjian个 FALSE 的位置,即为所求,本例传回「4」。
你也能够利用以下的公式获得不异成果:
贮存格B2:{=MATCH(TRUE,ISERROR(VALUE(MID(A2,ROW($1:$20),1))),0)}
而若是你的贮存格内容,其字元长度不肯定是不是会低于20个字,则改用以下公式。
贮存格B2:{=MATCH(TRUE,ISERROR(VALUE(MID(A2,ROW(INDIRECT(“1:”&
LEN(A2))),1))),0)}
这是阵列公式,输入完成要按 Ctrl+Shift+Enter 键。
ROW(INDIRECT(“1:”&LEN(A2))):操纵 LEN(A2) 获得贮存格的字元数,再透过 INDIRECT 函数将「”1:”&LEN(A2)」的成果转换为现实位址。
本例传回:ROW(INDIRECT(“1:6”))→ROW(1:6),指第1列至第6列。
创作者先容
vincent
- 全站分类:不设分类
- 小我分类:课本资料
- 此分类上一篇: Excel-排序时跳过文字和毛病讯息(ISNUMBER,RANK,IFERROR)
- 此分类下一篇: Excel-日期格局转换(MID,DATE,TEXT)
- 上一篇: Excel-排序时跳过文字和错北京拓展公司误讯息(ISNUMBER,RANK,IFERROR)
- 下一篇: Excel-日期格局转换(MID,DATE,TEXT)
汗青上的今天
- 2011: 利用Gmail寄送其他邮件帐户的邮件
- 2011: 在笔记型电脑上利用keypad数字键
- 2010: Excel-依分数发给奖金(利用VLOOKUP)
- 2010: Excel-列印文件加上浮水印结果
▲top