【发布时间】:2019-09-27 09:59:56
【问题描述】:
所以我根据旁边单元格中的数据验证做了一个动态数据验证下拉列表。问题是,当我将此数据验证复制到 1000 行时,我希望它根据行更改范围。我知道它必须手动完成,但想知道它是否可以自动化?
所以基本上我所拥有的是 A1 是您选择的服务,然后 B1 让您可以从我创建的公式中选择子服务,这基本上是
=TRANSPOSE(SI(ESTVIDE(Prestations!$C7);;SI(Prestations!$C7='Données'!$B$28;INDIRECT("Depose");SI(Prestations!$C7='Données'!$E$28;INDIRECT("Sols");SI(Prestations!$C7='Données'!$H$28;INDIRECT("Cloisons");SI(Prestations!$C7='Données'!$K$28;INDIRECT("Peinture");SI(Prestations!$C7='Données'!$N$28;INDIRECT("Plafonds");SI(Prestations!$C7='Données'!$Q$28;INDIRECT("Plomberie_CVC");SI(Prestations!$C7='Données'!$T$28;INDIRECT("Autres");SI(Prestations!$C7='Données'!$W$28;INDIRECT("Cas_Specifique");"Prestation n'existe pas"))))))))))
代码是法语的,对此感到抱歉。所以基本上 SI=IF, ESTVIDE=ISBLANK 和 ,s 是 ;s。 Prestations!$C7 是服务,所以基本上我们的“A1”,然后包含在 INDIRECTS 中的是子服务的命名范围。 'Données'!B28:W28 基本上是我比较 A1 下拉列表中的服务名称。
然后我只是复制粘贴了超过 1000 行。所以这基本上是我们的E1,然后复制到E1000。在数据验证中,我只是将范围设置为 E1:Z1。我使用了转置,否则数据会与下面复制的公式发生冲突。
现在我需要的是 A2 以后的数据验证。当然,当我复制粘贴数据验证时,它采用相同的范围 E1:Z1。可以修改成E2:Z2、E3:Z3等吗?
编辑:这里是文档Prestation_Test的链接
【问题讨论】:
-
嘿,再试一次,让我知道它是否有效
-
有效...不幸的是,您所询问的问题只能手动解决(例如,逐行设置)。另一种方法是研究脚本世界 - 也许有一些方法可以通过编程方式改变它
-
我明白了。我会调查一下。感谢您的帮助!
-
这可以在 Apps Scripts 中完成,但我不确定这里的问题。您正在尝试将 E1:Z1 的数据验证复制到 E1000:Z1000 之前的所有行,对吗?
-
嘿实际上基本上没有每一行我希望数据验证来改变范围。所以基本上在第一行我希望数据验证是 E1:Z1 和第二行 E2:Z2 等等
标签: validation google-apps-script google-sheets scripting