用Excel中的过滤replace空列与另一列的内容

我有一个问题,我找不到解决scheme:我想填充一个空列(B列)的内容与另一个包含内容(列A),我想筛选列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函数以及查找/replacebutton,并且找不到任何直接的正则expression式function,但我是新来的Excel,无法弄清楚这一点。

我正在使用Office Professional Plus 2013

任何帮助非常感谢!

做法:

  • 手动将自动筛选应用于A
  • 运行macros
  • 手动删除filter

B将包含在macros运行时可见的列A的内容。 macros:

 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 

macros很容易安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel使用macros:

  1. ALT-F8
  2. selectmacros
  3. 触摸RUN

要了解有关macros的更多信息,请参阅:

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

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

macros必须启用这个工作!

如果你想要做的只是去掉最后8个字符,并在最后加上'p'

 =LEFT(A1,LEN(A1)-8)&"p" 

如果这不是你想要的,用文字或者伪代码来解释你想要的映射,我可以提供更丰富的解决scheme。

 Br_dis_sp_142321 Br_dis_sp De_fadop_gy_112341 De_fadop_gp Fv_ner_rq_142321 Fv_ner_rp