【问题标题】:Call a function if a checkbox is selected google sheets如果选中了一个复选框,则调用一个函数 google sheet
【发布时间】:2020-01-17 23:14:40
【问题描述】:

我正在尝试找到解决问题的方法。 我在 A 列中有复选框。我需要的是当其中一个被选中时,在它旁边的单元格中填充一个函数/公式(B 列)。

例如,我选中了单元格 A10 中的复选框,公式正在填充到单元格 B10 中。

我的公式/函数是一个长 IF 函数。

希望有人能提供帮助。

【问题讨论】:

  • 您能否提供示例或工作表副本以尝试重现该问题?
  • @Kessy 在下面的 cmets 中添加了链接。

标签: if-statement checkbox google-sheets nested google-sheets-formula


【解决方案1】:

尝试:

=ARRAYFORMULA(TRANSPOSE(SPLIT(QUERY(QUERY({""; IFERROR(REPT("♦ ", LEN(SUBSTITUTE(TRANSPOSE(SPLIT(QUERY(IF(INDIRECT("A12:A"&
 MAX(IF(A12:A=TRUE, ROW(A12:A), )))=FALSE, "♣", "♥"),,999^99), "♥")), " ", ))-COUNTA(
 IF($B$11=Sheet5!A1,  FILTER(Sheet5!C1:C,   Sheet5!C1:C  <>"", NOT(REGEXMATCH(Sheet5!B1:B,   "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!J1,  FILTER(Sheet5!L1:L,   Sheet5!L1:L  <>"", NOT(REGEXMATCH(Sheet5!K1:K,   "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!S1,  FILTER(Sheet5!U1:U,   Sheet5!U1:U  <>"", NOT(REGEXMATCH(Sheet5!T1:T,   "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!AB1, FILTER(Sheet5!AD1:AD, Sheet5!AD1:AD<>"", NOT(REGEXMATCH(Sheet5!AC1:AC, "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!AK1, FILTER(Sheet5!AM1:AM, Sheet5!AM1:AM<>"", NOT(REGEXMATCH(Sheet5!AL1:AL, "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!AT1, FILTER(Sheet5!AV1:AV, Sheet5!AV1:AV<>"", NOT(REGEXMATCH(Sheet5!AU1:AU, "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!BC1, FILTER(Sheet5!BE1:BE, Sheet5!BE1:BE<>"", NOT(REGEXMATCH(Sheet5!BD1:BD, "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!BL1, FILTER(Sheet5!BN1:BN, Sheet5!BN1:BN<>"", NOT(REGEXMATCH(Sheet5!BM1:BM, "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!BU1, FILTER(Sheet5!BW1:BW, Sheet5!BW1:BW<>"", NOT(REGEXMATCH(Sheet5!BV1:BV, "MATERIAL|DISPOSAL|PLANTS"))),
 IF($B$11=Sheet5!CD1, FILTER(Sheet5!CF1:CF, Sheet5!CF1:CF<>"", NOT(REGEXMATCH(Sheet5!CE1:CE, "MATERIAL|DISPOSAL|PLANTS"))))
 ))))))))))+1))}, IF(COUNTIF(A12:A, TRUE)<2, "offset 1", ), 0)&QUERY(IF(A12:A=TRUE,
 IF($B$11=Sheet5!A1,  "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!C1:C,   NOT(REGEXMATCH(Sheet5!B1:B,   "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!J1,  "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!L1:L,   NOT(REGEXMATCH(Sheet5!K1:K,   "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!S1,  "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!U1:U,   NOT(REGEXMATCH(Sheet5!T1:T,   "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!AB1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!AD1:AD, NOT(REGEXMATCH(Sheet5!AC1:AC, "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!AK1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!AM1:AM, NOT(REGEXMATCH(Sheet5!AL1:AL, "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!AT1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!AV1:AV, NOT(REGEXMATCH(Sheet5!AU1:AU, "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!BC1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!BE1:BE, NOT(REGEXMATCH(Sheet5!BD1:BD, "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!BL1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!BN1:BN, NOT(REGEXMATCH(Sheet5!BM1:BM, "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!BU1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!BW1:BW, NOT(REGEXMATCH(Sheet5!BV1:BV, "MATERIAL|DISPOSAL|PLANTS")))),
 IF($B$11=Sheet5!CD1, "♦"&TEXTJOIN("♦", 1, FILTER(Sheet5!CF1:CF, NOT(REGEXMATCH(Sheet5!CE1:CE, "MATERIAL|DISPOSAL|PLANTS")))), 
 )))))))))), ), "where Col1 is not null", 0),,999^99), "♦")))

【讨论】:

  • 请考虑在您的答案中添加解释或更多细节,仅添加一行代码并不能帮助理解 OP 或未来社区成员的问题或建议的解决方案。
  • 感谢您回复我!我确实尝试过这样做,但没有奏效。我忘了提到的是,整个 A 列只是复选框,我需要这个公式作为数组公式工作。但是,当我尝试将其转换为数组时,它不起作用。
  • @Vladlen445 你能分享一份你的工作表吗?
  • @player0 抱歉回复晚了。当然! “示例”选项卡在单元格 B12 中有一个公式(与您建议的相同)。我需要的是将此公式转换为数组(或可能更改整个内容),以便将其应用于整个列。换句话说,如果我勾选 A 列中的任何复选框,公式将在其旁边显示下拉菜单。例如。我勾选单元格 A40 中的复选框,然后我将在单元格 B40 旁边获取信息并向下移动。 docs.google.com/spreadsheets/d/…
  • @player0 感谢您到目前为止的帮助。这不正是我要找的。我制作了一个视频来解释我到底想要实现什么,如果可能的话,请看一下。 loom.com/share/82ab8324de0e4c47921d53da0d0cbb25
猜你喜欢
  • 2014-09-14
  • 2021-12-24
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
相关资源
最近更新 更多