Excel 查找';n';用唯一值替换非空单元格
我有一个电子表格,其中每一行要么空白,要么列以p开头,要么列以星号开头(一个旧文本文件)。P的值在整个文件中必须是唯一的-可以是字母或数字,但带有P前缀。我不想改变空白或星号细胞。< /P> 例如:Excel 查找';n';用唯一值替换非空单元格,excel,Excel,我有一个电子表格,其中每一行要么空白,要么列以p开头,要么列以星号开头(一个旧文本文件)。P的值在整个文件中必须是唯一的-可以是字母或数字,但带有P前缀。我不想改变空白或星号细胞。< /P> 例如: *** Block 1 *** P1 <some data> P1 <some data> P1A <some data> *** Block 2 *** P2 <some more data> P2 <some more data>
*** Block 1 ***
P1 <some data>
P1 <some data>
P1A <some data>
*** Block 2 ***
P2 <some more data>
P2 <some more data>
***块1***
P1
P1
P1A
***第2区***
P2
P2
需要变成这样:
*** Block 1 ***
P0001 <some data>
P0002 <some data>
P0003 <some data>
*** Block 2 ***
P0004 <some more data>
P0005 <some more data>
***块1***
P0001
P0002
P0003
***第2区***
P0004
P0005
虽然我可以使用“Find”匹配所有的p单元格,但我不知道是否有办法让“replace”插入一些唯一的文本(或递增的数字)。我想我需要一些代码/宏。谢谢。试试这个:
Sub FixTheP()
Dim r As Range
Dim N As Long, i As Long
i = 1
N = Cells(Rows.Count, "A").End(xlUp).Row
For Each r In Range("A1:A" & N)
If Left(r.Text, 1) = "P" Then
r.Value = "P" & Format(i, "0000")
i = i + 1
End If
Next r
End Sub
作为不使用VBA的替代解决方案,您可以执行以下操作:
- 按Ctrl+H组合键调出“查找并替换”对话框
- 单击“选项”展开并查看所有选项
- 查找内容=
p*
- 假设
列是B列,则将Replace设置为==“P”和TEXT(COUNTA(间接(“B1:B”)和ROW()),“0000”)
- 内=
工作表
- 按行搜索=
- 查找=
公式
- 匹配大小写应未选中
- 匹配整个单元格内容应选中
- 单击“全部替换”
- 假设您替换的数据在A列中, 选择列A,然后复制->右键单击->粘贴特殊-> 价值观