自动逐列替换 Excel 中的文本

自动逐列替换 Excel 中的文本

我在 Excel 中有几百列,每列中的一些单元格中有随机的“x”,而其他所有单元格都是空的。每列的顶部都有一个特定的 ID 号。我需要将列中的每个“x”替换为其列顶部的 ID 号。

我尝试了=SUBSTITUTE(F4,"x",F2)各种迭代,但似乎不起作用。任何帮助都将不胜感激。我是 Excel 新手,所以感谢您的耐心。

答案1

你可以使用这个宏来实现这一点

Sub RepX()

    Dim WS As Worksheet
    Dim xCell As Range, Area As Range
    
    Set WS = ThisWorkbook.Worksheets("Sheet1")
    Set Area = WS.Range("A1:E10") 'Replace with your range
    For Each xCell In Area.Cells
        If xCell.Value = "x" Then
           xCell.Value = WS.Cells(1, xCell.Column) '1 is for row number. Replace with row number where your TOP IDs are.
           
        End If
        Next xCell
        
End Sub

它能做什么:

在此处输入图片描述

在此处输入图片描述


要添加宏,只需按下ALT+F11并在左侧面板上单击鼠标右键并Insert > Module。将上面的代码粘贴到该窗口中,然后单击“运行”►图标。


来源

答案2

假设所有列都是相邻的,并且您要转换的数据从列开始A,如@User552853 示例所示,一种不需要 VBA 的方法是使用以下公式:

=IF(A2="X",A$1,"")

这个公式最好放在最右边要替换的连续列,然后向右和向下复制到所需的单元格数量。

一旦您对新数据感到满意,您可以复制包含新数据的范围并将其粘贴到与值相同的位置,然后删除原始列。

根据需要在公式中进行调整A2,以分别反映第一个数据单元和标题的位置。A$1

要复制标题,只需使用=A1第一个标题,然后复制到右侧即可。根据需要进行调整。

截屏

相关内容