如何从旧的谷歌工作表中自动形成一个新的谷歌工作表,我需要过滤并修改其中的一列?

问题描述 投票:0回答:1

我有一张谷歌表格,其中包含我的一个音乐团体中现任和前任成员的大量列表,我想从中形成一张自动更新的表格,以便会员网站仅显示当前成员和非成员的电话号码括号内表示隐私。我还想重新排序列(将仪器列放在前面)并按仪器、姓氏和名字对它们进行排序。

以下是原始数据的示例: https://docs.google.com/spreadsheets/d/1jzBPxUMkRIhvGAqEJO4O57vx0D_rl_ZO7LgM5R9mhAs/edit?usp=sharing

这是我希望自动生成的内容供会员在会员网站中看到: https://docs.google.com/spreadsheets/d/1f1VT07pOOshSndBR4TO9ekq6N2Q2dRE6B64e6QE6koI/edit?usp=sharing

我可以轻松筛选当前成员,如下所示:

=query(importrange("1jzBPxUMkRIhvGAqEJO4O57vx0D_rl_ZO7LgM5R9mhAs","A:I"),"选择 Col5,Col2,Col3,Col4,Col6,Col7,Col8,Col9 WHERE Col1='y' ORDER BY Col5,Col6 DESC,Col2,Col3 “,1)

但未能成功地将括号内的电话号码隐藏在自动更新的表格中。我尝试了 REGEXEPLACE 和 IF 语句。

这是使用“IF”语句的一种尝试。它会生成“公式解析错误”:

=query(importrange("1jzBPxUMkRIhvGAqEJO4O57vx0D_rl_ZO7LgM5R9mhAs",ArrayFormula({A:F,if(G:G CONTAINS "(","",G),H:H})),"选择 Col5,Col2,Col3,Col4, Col6,Col7,Col8,Col9 WHERE Col1='y' 按 Col5,Col6 DESC,Col2,Col3",1)

我的 REGEXREPLACE 尝试,例如, =query(importrange("1jzBPxUMkRIhvGAqEJO4O57vx0D_rl_ZO7LgM5R9mhAs",{A:G, ARRAYFORMULA(REGEXREPLACE(H:I, ".[(].", ""))}),"选择 Col5,Col2,Col3,Col6,Col7 ,Col8,Col9 WHERE Col1='y' ORDER BY Col5",1)

所有生成的循环依赖错误...

任何人都可以告诉我如何解决这些尝试以获得我想要的东西吗?也许是宏或应用程序?我再次希望会员网站上可查看的内容能够从更大的工作表中自动更新,该工作表包含一些会员看不到的信息(包括完整的行,有时还有一些行的其余部分可见的列)。我希望这是可能的!

google-apps-script google-sheets-formula
1个回答
0
投票

仅限不带括号的电话号码,以表明隐私

使用数组公式,如下所示:

=let( 
  data, query( 
    importrange("1jzBPxUMkRIhvGAqEJO4O57vx0D_rl_ZO7LgM5R9mhAs","A:I"), 
    "select Col5, Col2, Col3, Col4, Col6, Col7, Col8, Col9 where Col1='y' order by Col5, Col6 desc, Col2, Col3", 
    1 
  ), 
  arrayformula(regexreplace(to_text(data), "^\(|\)$", "")) 
)

请参阅 arrayformula()to_text()regexreplace()

© www.soinside.com 2019 - 2024. All rights reserved.