【问题标题】:Find cell in position relative to address in other cell在相对于其他单元格中的地址的位置查找单元格
【发布时间】:2012-07-03 19:23:15
【问题描述】:

我是否可以在单元格A2 中放入一个函数,该函数将返回A1 中写入的单元格下方单元格中的任何内容?

例如,如果A1 包含=B35,那么A2 将返回单元格B36 中包含的值,如果我将A1 更改为=C17,那么A2 现在将包含其中的任何内容C18?

我一直在尝试使用indirect()offset()address() 的组合,但无法弄清楚。

【问题讨论】:

    标签: excel


    【解决方案1】:

    我不认为它可以像你想要的那样完成。我能想到的最接近的是将“目标”地址放在一个单元格中,例如,在这张图片中,A2 只包含字符串“b3”。然后,您可以指向间接函数。所以D2中的公式,对于B3下面的单元格的值,是:

    =OFFSET(INDIRECT(A2),1,0)

    【讨论】:

    • +1。如果实际上有一个“=”部分,那么可以用SUBSTITUTE 去掉它
    • 谢谢戴夫,我的意思是@brettdj。如果您的意思是公式开头的“=”可以被替换,我不知道该怎么做。这是我尝试的第一件事,因为它会使整个事情变得更容易,但在 VBA 中没有这样做,我不知道如何。
    • 我同意 - 我在考虑一个字符串,例如 '=B5,而不是一个真正的公式。再三考虑这不太可能
    【解决方案2】:

    假设您不想做任何比偏移单个单元格引用更复杂的事情,您可以混入一点 VBA。

    在新模块中:

    Public Function tFormula(ByVal Target As Range) As String
        tFormula = Mid(Target.FORMULA, 2)
    End Function
    

    B1 = "=C1"

    C2 = "你好"

    A1 = "=Offset(tFormula(B1),1,0)"

    Offset(tFormula(B1),1,0) = "你好"

    【讨论】:

      【解决方案3】:

      我想我可能已经解决了这个问题。在 Excel 2013 中,我的问题与您的类似:

      E107 包含=A100,我希望E108 返回单元格B100 中包含的值,所以如果我将E107 更改为=A101,那么E108 现在将包含@987654328 中的任何内容@。

      我的解决方案:

      =INDIRECT(CHAR(CODE(RIGHT(LEFT(FORMULATEXT(E107),2),1))+1)&RIGHT(FORMULATEXT(E107),LEN(FORMULATEXT(E107))-2))
      

      我用FORMULATEXT 获取单元格中的公式文本,并用CODECHAR 应用ASCII 运算来加起来A,这样它就变成B,然后返回INDIRECT 的值。需要一些字符串操作,使用LEFTRIGHT 函数。

      【讨论】:

        猜你喜欢
        • 2014-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多