在excel里,如何提取出一个单元格里有多个相同字符。例如A1为“我们都是123456”,共10个 EXCeL 提取单元格数据里的部分数据 如:A1是12345...

www.zhiqu.org     时间: 2024-06-16
用SUBSTITUTE函数进行逐个剔除,然后测试剩下字符串的长度,但如果A1的长度不确定就很复杂,用VBA写代码为好。假设A1内容长度固定为10,比如“我们都是123456”则可以:
【B2】=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,MID(A$1,10,1),""),MID(A$1,9,1),""),MID(A$1,8,1),""),MID(A$1,7,1),""),MID(A$1,6,1),""),MID(A$1,5,1),""),MID(A$1,4,1),"")
【C2】=IF(LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,MID(A$1,3,1),""),MID(A$1,2,1),""),MID(A$1,1,1),""))<2,"对","")
由于SUBSTITUTE镶嵌层数限制,很难写到一个公式中,用B2作过渡,C2作为测试结果,<2就是剩下少于2个字符,你也可以用A2的长度减去剩下字符长度来计算删除了多少个字符作为判断标准

B2输入公式=IF(SUMPRODUCT((LEN(A2)-LEN(SUBSTITUTE(A2,MID($A$1,ROW($1:$10),1),""))>0)*1)>=8,"是","")
向下拉
有8个以上相同字符的显示是,否则空白

excel 批量替换问提 A列有若干个单元格都有相同长度的字符,比如a1 123456,a2 132456~

自定义函数吧,使用起来简单快捷
-------------------
Public Function tihuan(iRng As Range, iStr As String, iPlc As String) As String
Application.Volatile
If iRng.Count > 1 Then
TiHuan = "#1" 'iRng的单元格数量必须等于1
Exit Function
ElseIf InStr(iStr, ",") Then
Dim a: a = Split(iStr, ",")
b = CStr(iRng.Value)
For i = LBound(a) To UBound(a)
If CInt(a(i)) Len(b) Then
TiHuan = b '指定要替换的位置不在iRng的字符串范围内
Exit Function
End If
b = Left(b, CInt(a(i)) - 1) & iPlc & Right(b, Len(b) - CInt(a(i)))
Next
TiHuan = b
Exit Function
Else
b = CStr(iRng.Value)
If CInt(iStr) Len(b) Then
TiHuan = b '指定要替换的位置不在iRng的字符串范围内
Exit Function
End If
b = Left(b, CInt(iStr) - 1) & iPlc & Right(b, Len(b) - CInt(iStr))
TiHuan = b
Exit Function
End If
End Function

---------------
把这段代码加入模块中,然后可以在单元格中用这个自编的公式,与正常的公式一样使用

假设 A 列从 A1 开始是你的数字,在B列输入公式,向下填充即可
=tihuan(A1,"2,3,5","*")
---------------
公式使用说明:
tihuan(iRng,iStr,iPlc)

功能:将单元格(iRng)字符串内的,指定位置(iStr)的字符,替换为某个字符(iPlc)

参数:iRng 指定单元格
如:A1
iStr 指定替换字符的位置,多个位置用英文逗号(,)隔开,放入英文引号("")内
如:"4" "2,3,5,7"
iPlc 替换为某个字符,放入英文引号("")内
如:"*"
示例:
=tihuan(A1,"2,3,5","*")
=tihuan(A3,"2","*")
=tihuan(A1,"5,7","*")
=tihuan(A1,"2,3,5,7","*")

-------------
代码加入模块的方法:

Alt + F11 键,进入VBA编辑器。
右击左边的“Microsoft Excel 对象”,在弹出的菜单中点击“插入”-“模块”。
双击模块,在右边把以上代码复制进去。保存。
就可以使用这个自定义函数 tihuan() 了。

=mid(a1,1,2)
=mid(a1,3,2)
=mid(a1,5,2)
或直接在第1个单元格输入公式:
=MID($A1,(COLUMN(A1)-1)*2+1,2)
将公式向右拉填充复制就可以了。


#蔺亲苗# Excel一列中多个相同内容的挑选!! -
(17118721872): 数据-筛选-高级筛选.在列表区域中选中你的这一列数据.在"不重复记录"前打勾.这样把不重复的记录都弄出来了.然后选中这个区域.按下F5,然后按"定位条件",选可见单元格.复制.然后你要粘到空白地方就行了.再把原来的删除.

#蔺亲苗# 怎样用函数提取excel单元格中包含多个字符,数字,英文中的相应数据 -
(17118721872): B1中输入 =TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",100)),COLUMN(A1)*100-99,100)) 向右填充 然后下拉

#蔺亲苗# excel如何统计一个区域的单元格里相同字符的单元格个数? -
(17118721872): 手机的EXCEL没用过 =SUM(--(A1:B20="某字符"))数组公式,按下SHIFT+CTRL+ENTER三键结束输入 =SUMPRODUCT(--(A1:B20="某字符")) 这两个公...

#蔺亲苗# excel表格,怎么从两个单元格中把相同的汉字提取出来?能实现吗? -
(17118721872): 你先用查找找到两个相同的文字,然后在其格式设置,在用格式刷刷一下就好了.

#蔺亲苗# 关于Excel的问题 如何在我选定的N个单元格里查找相同的值,或文本??? -
(17118721872): 你可以在I1输入=IF(COUNTIF($A$1:$H$100,A1)>1,"重复","")并把复制到I1:P100也就是和你的数据区域相同,这样有重复的就会在相应位置显示"重复".比如A2和H98两个数据相同,就会I2和P98显示重复.

#蔺亲苗# EXCL单元表格如何找到重复数据 -
(17118721872): 假若该数据在A2单元格,则可在B2单元格输入公式: =(LEN(A2)-LEN(SUBSTITUTE(A2,"R10,","")))/4+IF(RIGHT(A2,3)="R10",1,0) 即可得到你需要统计的数据. 原理: 先计算出原有的整个数据的字符总长度,再把你需要计算的字符替换了并算出替换了所有该字符后的字段总长度,因为“R10,”是4个字符,所以减少的字符长度除以4就是减少的该字符段的个数,也就是你所需要统计的字符重复个数.考虑到字符最后一个可以是“R10",但最后一般不会有这个逗号了,所以判断一下,若最后的3个字符是R10,就加1

#蔺亲苗# 怎么批量将EXCEL表格中含有相同字符的单元格提取出来复制到别的地方呢,最好同时将原表格的那些单元格删除 -
(17118721872): ②做在 原表格右侧:E1公式:=IF(ISERR(FIND("果",A1)),"",A1)向右、向下填充③做在 原表...

#蔺亲苗# excel中如何将多个单元格中相同字符移动出来 -
(17118721872): 揣摩你的意思,应该是单元格里含有3就移出,没3就不变对吧?输入公式=IF(ISERROR(FIND(3,A1)),"",A1),下拉,在A列的含3的数字出来了

#蔺亲苗# EXCEL中某单元格里的六个字符中有几个是相同的,从左到右我只想保留前面三个不同的字符.怎么做?求助. -
(17118721872): =LEFT(A1)<=FT(SUBSTITUTE(A1,LEFT(A1),))<=FT(SUBSTITUTE(SUBSTITUTE(A1,LEFT(A1),),LEFT(SUBSTITUTE(A1,LE...

#蔺亲苗# excel一行单元格里都是一样的字怎么弄 -
(17118721872): 复制的. 编辑函数: 假设姓名那一列的地址是在A1到A13. 找一个空白的目标区域,比如说C列空白. 选定横向对应着A1格的单元格C1,点击上方编辑栏左边的“=”,这时,编辑兰就出现了准备编辑公式的“=”,在“=”号后输入【CONCATENATE("河南",A1)】,按回车确定函数.注意,所有符号必须在英文状态下输入,上述函数不包括两端的中括号. 按过回车之后,C1单元格已经变成了“河南**”了,然后把鼠标放到C1单元格的右下角,呈黑色小十字,拖动往下复制函数,按着A列的数据长度一直拉到底,就在C列上实现了整个一列加入了“河南”前缀. 复制C列,怎么操作都可以了.