我一直认为必须有一个函数允许单元格内的地址用作另一个单元格地址中的变量。对于我创造的床单类型,这将使我的生活变得更加轻松。
出于举例的目的,我寻求的功能假设被称为" 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中的功能类型也可能在C,D,E列中需要数十或数百列。
现在我手动输入每个需要的地址,或使用地址输入很长的功能。如果A栏中有任何变化,那么我必须返回并重新输入这些长函数......而且我经常发现我输入了所有打字错误...
答案 0 :(得分:2)
您似乎在单元格A1中作为起点公式=Sheet2!A35
。
你要做的是:
将公式作为字符串。
为此,您可以使用XL4宏,VBA或FormulaText
(在Excel 2013或更高版本中),请参阅this。
从字符串中提取行号。
为此,您可以使用VBA(very easy)或公式来查找最右边的字母/ $
并将子字符串保持在右侧。
使用上一个答案,因为您已将问题纳入其中。
<小时/> 回答问题的第一个版本
我将分两步拆分您正在寻找的公式。
在单元格B1中,您可以输入="Sheet2!"&"X"&TEXT(A1,"0")
。
这将产生结果Sheet2!X25
。
然后在单元格C1中,您可以输入=INDIRECT(B1)
。
这将为单元格C1带来单元格Sheet2!X25
的内容。
注意:
您可以根据需要向下复制公式。
复制到其他列时,请注意相对/绝对索引。
您可以在B1中使用单个公式(无帮助列):=INDIRECT("Sheet2!"&"X"&TEXT(A1,"0"))
。
Sheet2
和(列)X
可以替换为合适的公式,如果您不希望它们被硬编码。
B1中的公式几乎可以肯定地被替换为
="Sheet2!"&"X"&A1
。
注意:很久以前,在我现在不记得的情况下,我发现我需要使用TEXT
; YMMV。