我在Google中使用了这个公式:
=SORT({SORT({'Discord-D'!B2:B, 'Discord-D'!A2:A,
ARRAYFORMULA(IF('Discord-D'!G2:G = "", "", IF('Discord-D'!C2:C <> "", "Removed", "Processing"))), 'Discord-D'!H2:H,
ARRAYFORMULA(IF('Discord-D'!C2:C <> "", 'Discord-D'!G2:G, IFERROR(REPLACE('Discord-D'!G2:G, LEN('Discord-D'!G2:G)-3, 4, "****")))),
'Discord-D'!I2:I}, ROW('Discord-D'!A2:A), FALSE); SORT({'Facebook-D'!B2:B, 'Facebook-D'!A2:A,
ARRAYFORMULA(IF('Facebook-D'!E2:E = "", "", IF('Facebook-D'!C2:C <> "", "Removed", "Processing"))), 'Facebook-D'!F2:F,
ARRAYFORMULA(IF('Facebook-D'!C2:C <> "", 'Facebook-D'!E2:E, IFERROR(REPLACE('Facebook-D'!E2:E, LEN('Facebook-D'!E2:E)-3, 4, "****")))),
'Facebook-D'!G2:G}, ROW('Facebook-D'!A2:A), FALSE); SORT({'Instagram-D'!B2:B, 'Instagram-D'!A2:A,
ARRAYFORMULA(IF('Instagram-D'!E2:E = "", "", IF('Instagram-D'!C2:C <> "", "Removed", "Processing"))), 'Instagram-D'!F2:F,
ARRAYFORMULA(IF('Instagram-D'!C2:C <> "", 'Instagram-D'!E2:E, IFERROR(IF(LEN(REGEXEXTRACT('Instagram-D'!E2:E, "com/(.+)")) > 4,
REPLACE('Instagram-D'!E2:E, LEN('Instagram-D'!E2:E)-3,4, "****"),
REPLACE('Instagram-D'!E2:E, LEN('Instagram-D'!E2:E)-1,2, "**"))))), 'Instagram-D'!G2:G}, ROW('Instagram-D'!A2:A), FALSE); SORT({'TikTok-D'!B2:B, 'TikTok-D'!A2:A,
ARRAYFORMULA(IF('TikTok-D'!E2:E = "", "", IF('TikTok-D'!C2:C <> "", "Removed", "Processing"))), 'TikTok-D'!F2:F,
ARRAYFORMULA(IF('TikTok-D'!C2:C <> "", IFERROR(IF(LEN(REGEXEXTRACT('TikTok-D'!E2:E, "https://www.tiktok.com/@(.*?)/")) = 4,
REPLACE('TikTok-D'!E2:E, LEN("https://www.tiktok.com/@" & REGEXEXTRACT('TikTok-D'!E2:E, "https://www.tiktok.com/@(.*?)/"))-1, 2, "**"),
REPLACE('TikTok-D'!E2:E, LEN("https://www.tiktok.com/@" & REGEXEXTRACT('TikTok-D'!E2:E, "https://www.tiktok.com/@(.*?)/"))-3, 4, "****"))),
IFERROR(IF(LEN(REGEXEXTRACT('TikTok-D'!E2:E, "https://www.tiktok.com/@(.*?)/")) = 4,
REPLACE(REPLACE('TikTok-D'!E2:E, LEN("https://www.tiktok.com/@" &
REGEXEXTRACT('TikTok-D'!E2:E, "https://www.tiktok.com/@(.*?)/"))-1, 2, "**"), LEN('TikTok-D'!E2:E)-3, 4, "****"),
REPLACE(REPLACE('TikTok-D'!E2:E, LEN("https://www.tiktok.com/@" & REGEXEXTRACT('TikTok-D'!E2:E, "https://www.tiktok.com/@(.*?)/"))-3, 4, "****"), LEN('TikTok-D'!E2:E)-3, 4, "****"))))), 'TikTok-D'!H2:H}, ROW('TikTok-D'!A2:A), FALSE);
SORT({'YouTube-D'!B2:B, 'YouTube-D'!A2:A, ARRAYFORMULA(IF('YouTube-D'!E2:E = "", "", IF('YouTube-D'!C2:C <> "", "Removed", "Processing"))), 'YouTube-D'!G2:G,
ARRAYFORMULA(IF('YouTube-D'!C2:C <> "", 'YouTube-D'!E2:E, IFERROR(REPLACE('YouTube-D'!E2:E, LEN('YouTube-D'!E2:E)-3, 4, "****")))),
ARRAYFORMULA(IFERROR(REPLACE('YouTube-D'!F2:F, LEN('YouTube-D'!F2:F)-3, 4, "****")))}, ROW('YouTube-D'!A2:A), FALSE)}, 1, FALSE)与其他列相比,YouTube数组包含一个额外的列。最初,它会失败,因为并不是所有的数组都有相同数量的列。我通过在每个工作表中插入一个空白列并引用该列来解决这个问题(除了YouTube之外,每个数组中的最后一个列引用,所以‘Discord’!i2:i,‘Facebook’!G2:G,'Instagram-D'!G2:G和'TikTok-D'!H2:H)。有什么更好的方法可以做到这一点(例如,通过创建一个几乎空白的列,而不是实际需要一个)?
发布于 2022-09-25 10:49:28
如何创建虚拟列(或行)有多种方法。例如,为了避免array errors,我们可以手动创建一个虚拟数组,例如:
={A1:A5, {"";"";"";"";""}}要动态地执行此操作,我们可以使用零误差除以,并将其转换为空白:
=IFERROR(ROW(A2:A)/0, )另一种方法是在查询中插入虚拟列,如:
=QUERY(A:C, "select A,B,C,' ' label ' '''")但即使只需一次,你也可以做到,如果:
=IF(A2:A,,) 很多人用的是替换序列:
=SUBSTITUTE(SEQUENCE(ROWS(A2:A), 1, 1, 0), 1, )当然,第二,第四和第五外汇需要ARRAYFORMULA包装
另一种流行的方法是引用现有列,该列肯定是空的,如X:
={A:C, X:X}在某些情况下,您甚至可以引用一个不存在的列。
例如,如果工作表中有A列,则可以使用:
={A:C, XX:XX}而朗姆达的情人会欣赏到:
=INDEX(LAMBDA(x, IFERROR(x/0))(A2:A))或者:
=INDEX(LAMBDA(x, x)(IF(A2:A,,)))https://stackoverflow.com/questions/73843809
复制相似问题