列出从一行填充 4 个单元格中的 2 个的行数
Posted
技术标签:
【中文标题】列出从一行填充 4 个单元格中的 2 个的行数【英文标题】:Listing the number of rows with 2 of 4 cells filled from a row 【发布时间】:2022-01-13 04:33:20 【问题描述】:想象一下我有一张这样的床单
People Alpha Bravo Charlie Delta Echo Foxtrot
p1 x x
p2 x x x
p3 x x x
等等。 我如何创建一个函数来打印参加以下两项的人数:Alpha、Charlie、Echo 和 Foxtrot
又名以下排列之一: A & C, A&E, A&F, C&E, C&F, 英富
标题
【问题讨论】:
【参考方案1】:尝试:
=INDEX(QUERY(SPLIT(FLATTEN(IF(B2:G = "x"; A2:A&"♥"&B1:G1; )); "♥");
"where Col2 is not null"; ))
更新 1:
=SUMPRODUCT((B2:B16<>"")*(E2:E16<>""))
更新 2:
=QUERY(INDEX(REGEXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(B2:C="",,B1:C1&","),
IF(REGEXMATCH(D2:D, "- D2$"), D1&"2,", IF(D2:D="",,D1&",")),
IF(E2:E, G2:K, M2:O="",,E1, G1:K1, M1:O1&","),
IF(REGEXMATCH(P2:P, "- Z$"), P1&",", ),
IF(Q2:Q="",,Q1&",")),,9^9))), ",$", )),
"select Col1,count(Col1) where Col1 is not null group by Col1
order by count(Col1) desc label count(Col1)''")
【讨论】:
在我应用它的上下文中存在一些问题。我直接在工作表的下方应用,这意味着存在循环依赖,我相信我通过更改范围来修复它。此外,输入并不总是相同的,有什么办法可以改变它吗?谢谢。 @Timewarper 你能分享一份你的工作表吗? @Timewarper 见:docs.google.com/spreadsheets/d/… @Timewarper 如果你想要 OR 逻辑而不是 AND 逻辑,请将 * 替换为 + @Timewarper 见:docs.google.com/spreadsheets/d/…【参考方案2】:如果单元格值为x
:
=((B2="x")+(D2="x")+(F2="x")+(G2="x"))=2
如果单元格值为复选框(TRUE
):
=(B2+D2+F2+G2)=2
【讨论】:
有什么办法可以把它变成一个数组,返回第一个公式为真的总行数?=COUNTIF(ArrayFormula(((B2:B="x")+(D2:D="x")+(F2:F="x")+(G2:G="x"))=2),TRUE)
有没有办法改变它,使输入是随机的和未知的(不是每次都是“x”)?尝试做 COUNTA 但没用,可能与 ArrayFormula 冲突?
只需将"x"
替换为"your input"
。以上是关于列出从一行填充 4 个单元格中的 2 个的行数的主要内容,如果未能解决你的问题,请参考以下文章