在Excel中使用过滤替换空列和另一列的内容

时间:2014-08-20 13:12:07

标签: 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中尝试过SUBSTITUTE和REPLACE函数以及查找/替换按钮,但是找不到任何简单的正则表达式功能,但我是Excel的新手并且无法解决这个问题。

使用的是Office Professional Plus 2013

任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:1)

方法:

  • 手动将自动筛选应用于列 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

宏非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为 .xlsm 而不是 .xlsx

    删除宏:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 要使用Excel中的宏:

      1. ALT-F8
      2. 选择宏
      3. 触碰RUN
      4. 要了解有关宏的更多信息,请参阅:

        http://www.mvps.org/dmcritchie/excel/getstarted.htm

        http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

        必须启用宏才能使其生效!

答案 1 :(得分:0)

如果您要做的就是删除最后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