列出从一行填充 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 个的行数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 apache poi 确定合并单元格中的行数?

Handsontable,设置单元格中的可见行数

基于在 Excel 中的每一行中为不确定的行数确定的值的条件格式

自定义单元格中的 UILabel 不会动态增加高度

vba如何读取excel中某单元格的行数或列数

自定义大小的表格视图单元格中的 UILabel 中的行数