如果我已经向电子表格#1添加/删除了行,如何获得IMPORTRANGE
函数来更新电子表格#2中的引用?
测试文档:
我找到的所有答案都说
address
功能(但这也不起作用)VLOOKUP
数组(但我的电子表格没有匹配的列标题)希望能为您解决此问题提供帮助。我需要L47,M47(S1)才能填充到A2,A3(S2)。我的实际源电子表格(未链接)具有大量数据(范围A1:Z55),并且我经常添加/删除/移动行。
如果我向S1添加一行,如何确保L47
在S2中更新为L48
? address
功能是最好的解决方案还是array
更好?
答案 0 :(得分:0)
这可以通过在远处添加一个额外的列来实现,该列可以隐藏起来,然后通过使用唯一的分隔符连接所需的单元格集来填充此列,直到在第二个电子表格上发生拆分为止。请注意:
IMPORTRANGE
的动态IMPORTRANGE
数据中都有一个唯一的分隔符,并且始终将搜索应用于这样的唯一分隔符,则不需要多余的列在这种情况下,使用了 AG 列,从中输入了IMPORTRANGE
。
(无论行号如何)都有JOIN
的 L50 内容和 M50 以及 L51 和 M51 的内容等...(无论是直接还是间接完成输出)是TEXT
):
=JOIN("¤"; L50; MIN(FILTER(L:L; ISNUMBER(SEARCH("*banana*"; P:P))
+ISNUMBER(SEARCH("*banana*"; Q:Q))
+ISNUMBER(SEARCH("*banana*"; R:R)))))
输出:
next banana¤30-Aug-2004
=JOIN("¤"; L51; MIN(FILTER(L:L; ISNUMBER(SEARCH("*orange*"; P:P))
+ISNUMBER(SEARCH("*orange*"; Q:Q))
+ISNUMBER(SEARCH("*orange*"; R:R)))))
输出:
next orange¤2-Oct-2003
=JOIN("♥"; L52; AVERAGE(FILTER(L:L; ISNUMBER(SEARCH("orange"; P:P))
+ISNUMBER(SEARCH("orange"; Q:Q))
+ISNUMBER(SEARCH("orange"; R:R)))))
输出:
X♥25-Sep-2013
=JOIN("♀"; L53; MIN(FILTER(L5:L48; ISNUMBER(SEARCH("*banana*"; Q5:Q48))
*ISNUMBER(SEARCH("open"; R5:R48)))))
输出:
next banana♀20-Aug-2000
=JOIN("♂"; L54; AVERAGEIFS(M5:M48; R5:R48; "open",
Q5:Q48; "*banana*"))
输出:
avg days open (banana)♂74.41
=JOIN("♪"; L55; Q50/Q51)
输出:
util♪0.370544987
=JOIN("♫"; L56; MINIFS(M5:M48; R5:R48; "open",
Q5:Q48; "*banana*"))
输出:
newest (mo)♫3.48
=JOIN("¤"; L57; M56*30.5)
输出:
newest(days)¤106.2580645
=JOIN("♤"; L58; M58)
输出:
avg LMT♤25051.35484
此时,连接单元格的格式是否以其他方式输出都无关紧要(例如,输出的第二部分应格式化为 $
, { {1}} , %
),因为在拆分后的 Spreadsheet2 中,您可以根据需要设置其格式
在 Spreadsheet2 中,您可以将以下公式粘贴到任何列和任何行上,也可以随意粘贴:
mm/dd/yyyy
这基本上 =SPLIT(
ARRAY_CONSTRAIN(
QUERY(
IMPORTRANGE("13evadbMLzvQVSGbYssn_0deFdcmb5l3sqpeFgcNTjOY"; "'Sheet1'!AG1:AG1000");
"select Col1 where Col1 ='"&
FILTER(
IMPORTRANGE("13evadbMLzvQVSGbYssn_0deFdcmb5l3sqpeFgcNTjOY"; "'Sheet1'!AG1:AG1000");
ISNUMBER(
SEARCH("banana";
IMPORTRANGE("13evadbMLzvQVSGbYssn_0deFdcmb5l3sqpeFgcNTjOY"; "'Sheet1'!AG1:AG1000"))
))
&"'");
1; 1);
"¤"; 1; 0)
是Sp1中来自范围AG1:AG1000的Sheet1下Spreadsheet1中的文本值SEARCH
,并将其馈送到"banana"
,后者馈给FILTER
的标准是{ {1}}返回一个条目,该条目在唯一行QUERY
(先前在ARRAY_CONSTRAIN
中使用)之后SPLIT
进入同一行的两列。就是这样。
如果单元格 L50 的内容是静态的,如"¤"
,并且每列也是唯一的,则可以JOIN
代替banana
您需要使用每列唯一的分隔符和SEARCH
代替这样的分隔符,"banana"
为成功链接,您需要确保SEARCH
中的分隔符与"banana"
(SPLIT
)中的分隔符匹配。您可以使用任意符号作为分隔符( http://www.i2symbol.com/symbols )
示例:对于公式 JOIN
,您可以使用:
"¤"
或
=JOIN("♤"; L58; M58)
或
=SPLIT(
ARRAY_CONSTRAIN(
QUERY(
IMPORTRANGE("13evadbMLzvQVSGbYssn_0deFdcmb5l3sqpeFgcNTjOY"; "'Sheet1'!AG1:AG1000");
"select Col1 where Col1 ='"&
FILTER(
IMPORTRANGE("13evadbMLzvQVSGbYssn_0deFdcmb5l3sqpeFgcNTjOY"; "'Sheet1'!AG1:AG1000");
ISNUMBER(
SEARCH("lmt";
IMPORTRANGE("13evadbMLzvQVSGbYssn_0deFdcmb5l3sqpeFgcNTjOY"; "'Sheet1'!AG1:AG1000"))
))
&"'");
1; 1);
"♤"; 1; 0)