在Excel中将空列替换为另一列的内容,并进行筛选

在Excel中将空列替换为另一列的内容,并进行筛选,excel,Excel,我遇到了一个无法解决的问题:我试图用另一个包含内容的列(列a)填充空列(列B)的内容,并且我希望在将列a的内容放入列B之前对其进行过滤 举例说明: col A col B Br_dis_sp_142321 Br_dis_sp De_fadop_gy_112341 De_fadop_gp Fv_ner_rq_142321 Fv_ner_sp 我在Excel中尝试了替换和替换函数以及查找/替换按钮,但找不到任何简单的正则表达式功能,但我是Excel新

我遇到了一个无法解决的问题:我试图用另一个包含内容的列(列a)填充空列(列B)的内容,并且我希望在将列a的内容放入列B之前对其进行过滤

举例说明:

col A                col B  
Br_dis_sp_142321    Br_dis_sp
De_fadop_gy_112341  De_fadop_gp
Fv_ner_rq_142321    Fv_ner_sp
我在Excel中尝试了替换和替换函数以及查找/替换按钮,但找不到任何简单的正则表达式功能,但我是Excel新手,无法理解这一点

我使用Office Professional Plus 2013

非常感谢您的帮助

方法:

  • 手动将自动筛选应用于列A
  • 运行宏
  • 手动卸下滤清器
B将包含运行宏时可见的列A的内容。宏:

Sub CaptureFilter()
    Dim i As Long, N As Long, j As Long, r As Range
    N = Cells(Rows.Count, 1).End(xlUp).Row
    i = 1
    For j = 2 To N
        Set r = Cells(j, 1)
        v = r.Value
        If r.EntireRow.Hidden = False Then
            Cells(i, 2).Value = v
            i = i + 1
        End If
    Next j
End Sub
宏非常易于安装和使用:

  • ALT-F11将显示VBE窗口
  • ALT-I ALT-M打开一个新模块
  • 粘贴内容并关闭VBE窗口
  • 如果保存工作簿,宏将与工作簿一起保存。 如果在2003年以后使用Excel版本,则必须保存 将文件设置为.xlsm而不是.xlsx

    要删除宏,请执行以下操作:

  • 如上所述打开VBE窗口
  • 清除代码
  • 关闭VBE窗口
  • 要使用Excel中的宏,请执行以下操作:

  • ALT-F8
  • 选择宏
  • 触跑
  • 要了解有关宏的更多信息,请参阅:


    必须启用宏才能工作

    如果您只想去掉最后8个字符,并在末尾附加一个“p”,那么这应该可以:

    =LEFT(A1,LEN(A1)-8)&"p"
    
    如果这不是您想要的,请用文字或伪代码解释您心目中的映射,我可以提供更丰富的解决方案

    Br_dis_sp_142321    Br_dis_sp
    De_fadop_gy_112341  De_fadop_gp
    Fv_ner_rq_142321    Fv_ner_rp
    

    你会考虑使用宏(VBA)吗?嗨,是的,我精通编码,但从来没有尝试过VBA,我肯定会给它一个肯定的。“过滤器”,你的意思是把最后一个比特[字母]剔除12345??是的,听起来很正确,但是字符在长度上变化。