【问题标题】:Excel: Can an address within a cell be used as part of another cell address?Excel:单元格内的地址可以用作另一个单元格地址的一部分吗?
【发布时间】:2018-06-23 17:53:13
【问题描述】:

我一直在想,必须有一个函数允许将单元格中的地址用作另一个单元格地址中的变量。对于我正在创建的床单类型,它会让我的生活变得更加轻松。

出于示例的目的,我寻求的函数在下面假设称为“THING”:

Sheet1 Daily Menus

MONDAY MENU
      Items:           Helper Column          Nutritional Data           Results
        A                   B                         C             
1   =Sheet2!A35      =THING(A1,row=35)     =INDIRECT("Sheet3!G"&B1)    =Sheet3!G35
2   =Sheet2!A247     =THING(A2,row=247)    =INDIRECT("Sheet3!G"&B2)    =Sheet3!G247
3   =Sheet2!A989     =THING(A3,row=989)    =INDIRECT("Sheet3!G"&B3)    =Sheet3!G989

TUESDAY MENU
101 =Sheet2!A613     =THING(A101,row=613)  =INDIRECT("Sheet3!G"&B101)    =Sheet3!G613

底线是:

在一个复杂的电子表格(10 页,每页有数百行和列)中,我想通过仅更改第 1 页 A 列中的数据来操作地址。

这也让我可以轻松地将 B 列向下复制数百行。对于数十或数百列,C、D、E...列中也可能需要 B 列中的函数类型。

现在我手动输入每个需要的地址,或者使用地址输入一个很长的函数。如果 A 列有任何变化,那么我必须返回并重新输入这些长函数……而且我经常发现我在所有输入中都打错了……

【问题讨论】:

  • 还有一个问题:有没有其他方法可以提取行号(而不是使用 RIGHT)?因为有些行号是个位数、两位数和三位数?如果没有,那么我需要在每个被引用的工作表中插入 99 行,然后隐藏它们。这是我获得数百行具有相同位数的唯一低技术解决方案。
  • @pnuts 我已经改进了我的问题的特异性。你极大地帮助了我改进我对 INDIRECT 的使用,我非常接近我多年来一直在寻找的解决方案。谢谢
  • 查看 ROW、COLUMN 和 ADDRESS 函数。
  • @Joe ADDRESS 对我不起作用,或者我不明白如何实现它。如果我在 Sheet2 上放一个额外的行并让它自己编号,那么 ROW 函数可以工作,然后将 INDIRECT 指向那个...
  • @Joe 如果我在 Sheet1 上使用 ROW(A1) 那么我得到“1”......但我真的希望它说“35”。有没有简单的方法可以做到这一点?

标签: excel function spreadsheet


【解决方案1】:

您似乎在单元格 A1 中有作为起点的公式 =Sheet2!A35。 你要做的是:

  1. 以字符串形式获取公式。 为此,您可以使用 XL4 宏、VBA 或 FormulaText(在 Excel 2013 或更高版本中),请参阅 this

  2. 从字符串中提取行号。 为此,您可以使用 VBA (very easy) 或公式来查找最右边的字母/$ 并将子字符串保留在其右侧。

  3. 使用之前的答案,因为您已将问题包含在问题中。


回答第一版问题

我将分两步拆分您要查找的公式。

在单元格 B1 中,您可以输入 ="Sheet2!"&"X"&TEXT(A1,"0")。 这将产生结果Sheet2!X25。 然后在单元格 C1 中,您可以输入=INDIRECT(B1)。 这会将单元格 Sheet2!X25 的内容带入单元格 C1。

注意事项:

  1. 您可以根据需要向下复制公式。

  2. 复制到其他列时,注意相对/绝对索引。

  3. 您可以在 B1 中使用单个公式(无辅助列):=INDIRECT("Sheet2!"&"X"&TEXT(A1,"0"))

  4. 如果您不希望它们被硬编码,Sheet2 和(列)X 都可以替换为合适的公式。

  5. B1 中的公式几乎肯定可以替换为 ="Sheet2!"&"X"&A1。 NB:很久以前,在我现在不记得的情况下,我发现我需要使用TEXT; YMMV。

【讨论】:

  • @EverettSteed - 如果我理解正确,您需要的是与所要求的不同的东西。在我看来,这个答案解决了“变量(尤其是单元格的内容)可以用作单元格地址的一部分吗?”这个问题。我建议您发布另一个问题来描述您需要什么,并附上一个具体示例(与您在此处所做的相同,很高兴看到这个问题,而且在 SO 中通常看不到)。否则可能会误导读者。
  • @EverettSteed - 如果您碰巧发布了另一个问题,您可以在此处添加一个带有链接的评论,这样他们就可以联系起来,读者可以继续跟进。
  • 我已经改进了我的问题的特异性。我为造成的混乱道歉,只有在探索 pnuts 的建议时,我才意识到问题的真正复杂性和问题的核心。任何帮助表示赞赏。谢谢
  • @EverettSteed - 我会尝试回答新问题。但同样,我认为您最好不要修改问题,而是提出一个新问题,以保持对其他人也有用。
  • 对不起,我刚看到你的消息。我理解以原始形式留下问题的逻辑,但我非常热情地问我的意图,以至于我完全错过了这条信息。对不起
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 2018-08-25
  • 2023-03-24
相关资源
最近更新 更多