【问题标题】:Extract Values From Cells Based On Corresponding Cell Value根据对应的单元格值从单元格中提取值
【发布时间】:2019-04-18 04:56:01
【问题描述】:

我正在尝试根据下一列中给出的值从前面的行中提取值。

如以下示例(说明表图像),在单元格 A2 中,单元格值为 10(以绿色突出显示),单元格 D2 中的相应值为 3(以红色突出显示),因此单元格 E2、E3 和 E4 中所需的值为删除文本“SLR#”后,单元格 A3、A4 和 A5 的值分别为 A-1111、B-2222、C-3333。在单元格 A6 的情况下,单元格 D6 中的对应值为 2,因此单元格 E6 和 E7 中所需的值将是 D-4444 和 E-5555。

像这样连续的数据和公式或 VBA 代码将满足我在 E 列中的要求。如果您需要进一步说明,请告诉我。在此先感谢...

说明表:

我尝试了以下用户定义函数,但它在一个单元格中而不是在下一个单元格中提供了所有值。 (感谢 Fluff 先生的这个 UDF)

Function UDF(Rng As Range, Rws As Long) As String
   Dim i As Long
   Dim Cl As Range

   For Each Cl In Rng
      If Left(Cl, 4) = "SLR#" Then
         UDf = UDF & Cl.Value
         i = i + 1
         If i = Rws Then Exit For
      End If
   Next Cl
   UDF = Trim(Replace(fiberboysa, "SLR#", ""))
End Function

【问题讨论】:

    标签: excel vba excel-formula


    【解决方案1】:

    我可以简化这一点,但如果数据总是以这种方式结构化,那么试试这个公式...

    =IF(D3<>"","",IF(ISBLANK(A3),"",A3))
    

    ...将其复制到单元格E2并填写。

    如果它不适合你,我很高兴,但它适用于你提供的简单示例。

    【讨论】:

    • 它只工作一次。就像如果 D 列中有 3 个,它只会从 A 列带来一个值,但我需要 E 列中的 3 个处理值。
    • @Accounts-Loves-Code,你把公式填了吗?如果它只工作一次,那么我假设你从未填写过它。我用显示它工作的屏幕截图更新了我的答案。如果那不适合你,那么我显然错过了一些东西。当您应用 mt answer 时,我需要看到您所说的结果。
    • 是的!完成了。实际上我的数据非常大,所以我添加了更多的 IF,这就是它不起作用的原因。我修复了它,它现在可以工作了。再次感谢亲爱的!!!
    猜你喜欢
    • 2013-01-10
    • 2022-12-10
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-14
    相关资源
    最近更新 更多