【问题标题】:How Do Perform Match-Replace-Match Next-Replace function in Excel?如何在 Excel 中执行 Match-Replace-Match Next-Replace 功能?
【发布时间】:2015-08-12 23:59:43
【问题描述】:

我想知道执行以下操作的最佳方法/函数/嵌套函数是什么:

我有 1 个包含固定数据的列表:

列出项目:

1001
1002
1003
1004

我有一个包含内容的表格:

Column A     
Column B       


Column A Title: Item Code     
Column B Title: Description   

A栏内容:

Row 1: 1001    
Row 2: sc    
Row 3: nc    
Row 4: sc    
Row 5: 1002    
Row 6: nc    
Row 7: vc    
Row 8: fc    
Row 9: 1003

B栏内容:

Travel to Miami         
Food for Miami        
Tickets to Miami Concert     
Gas for Atlanta           
Atlanta sight seeing     
Atlanta EMT                  
Telephone bills            
Telephone cell  

我想做什么:

我想要一个公式,上面写着“取 A 列中出现的第一个项目代码,将其与列表匹配; '

所以,最终结果是:

  • 在 A 列中,1001 后面的“sc”和“nc”将替换为“1001”;
  • 然后excel接下来会检测到'1002',并将后面的'nc'和bc'替换成'1003',直到找到'1003';
  • 然后 excel 会检测到“1004”并将未列出的内容替换为“1004”,直到找到列表中的下一项。

到目前为止,运行 IFERROR 公式仅有助于删除一个内容,但不会检测第二个数字,并会自动将第二组内容替换为其各自的数字。

可以这样做吗?

【问题讨论】:

    标签: excel vlookup


    【解决方案1】:

    如果它们不一定按顺序排列,请从 C2 开始尝试:-

    =IF(ISERROR(MATCH(A2,E$2:E$5,0)),C1,A2)
    

    假设项目代码从 A 列的第 2 行开始,列表在 E2:E5 中

    【讨论】:

    • 这个公式有效。谢谢汤姆!唯一的事情是我必须添加一个新列来运行该函数。有没有办法在同一列中运行该函数 - 比如在 A 列开始的第 2 行?我怀疑它最终会成为一个循环错误。 ...但是感谢您的帮助!
    • 很好!不抱歉,我认为您需要 VBA 来替换 A 列中的值。
    • 还有一步:我现在正在编写一个宏来自动化这一切。我的问题是在录制宏时,我尝试更正来自原始工作表的文本/编号错误(上面的 A 列);我选择单元格 A2,然后按 Shift+A 列;这将选择整个 A 列;然后我单击下拉菜单修复错误并选择“转换为编号”;结果足以让 C 列执行其操作。然后我停止录制宏。当我运行它时,它并没有修复我在录制时修复的错误。有解决方案的想法吗?
    【解决方案2】:

    看起来数据是按升序排列的(数字)。在这种情况下,我认为最好的解决方案是输入不同的列(可能是“C”):

    =MAX(A$1:A1)

    这就是你所需要的。让我知道这是否有用。

    【讨论】:

    • 嗨圣地亚哥,我的问题是真实文档没有按升序排列的数据,我不想冒险通过添加另一个任务来增加误差范围(将所有列中的数据提升并对齐到同步);汤姆的方法用最少的行动解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多