列中其他单元格中的 Openoffice Calc(或 Excel)计数匹配

Posted

技术标签:

【中文标题】列中其他单元格中的 Openoffice Calc(或 Excel)计数匹配【英文标题】:Openoffice Calc (or Excel) count matches in other cell in column 【发布时间】:2018-11-30 01:42:24 【问题描述】:

我已经搜索无济于事,而我的电子表格技能根本不足以解决这个问题。

假设我有 90 列中的 5 行数字。对于每一列,我想找到最大数量。这很容易,我可以为此创建一个辅助行。但是,我想要的是计算每行包含多少列的最大数量。

在如下数据集中:

a b c d 
1 2 3 4 
5 4 3 2 
4 4 4 4 
1 1 1 1

我想要以下:

 a b c d   countmax
 1 2 3 4   1
 5 4 3 2   2
 4 4 4 4   3
 1 1 1 1   0

使用辅助行会,它看起来像这样:

 a b c d   countmax
 1 2 3 4   1
 5 4 3 2   2
 4 4 4 4   3
 1 1 1 1   0
 5 4 4 4

我查看了sumproductcountifhlookupvlookup 和其他人,但我不知道该怎么做。我目前通过为每一行添加一个额外的行,并对每个单元格进行比较,然后计算布尔结果来解决它。 (单元格内容:“=IF(a1 = a5;1;0)” 单元格中最后一列的内容:“=COUNTIF(a6:d6;1) ")

理想情况下,解决方案是一个不依赖于任何辅助单元格的公式,并且只是逐列计算,计算该行和列中的单元格有多少次是最大值。我也很想知道如何使用单个辅助行来做到这一点,因为该方法需要进行单元格比较。

提前致谢。

【问题讨论】:

【参考方案1】:

“我也很想知道如何用 single 辅助行来做到这一点。”

用公式:

=SUMPRODUCT(--(A1:D1=$A$5:$D$5))

【讨论】:

看到 Tom Sharpe 的答案不适用于 OpenOffice,我如何将其转换为答案/无需/不需要辅助行? 我不知道在没有辅助行的情况下在 Open Office 中执行此操作的方法。 @insaner 您可以在没有辅助行的情况下使用=(A1=MAX($A$1:$A$4))+(B1=MAX($B$1:$B$4))+(C1=MAX($C$1:$C$4))+(D1=MAX($D$1:$D$4)) 之类的公式来做到这一点,仅适用于 90 列 :) 您的意思是输入 90 列?呵呵..那不值得麻烦。 呵呵,我同意,我突然想到,这是“技术上”一种没有辅助行的方法...... :)【参考方案2】:

如果没有辅助行,可以使用Offset依次获取每一列,然后Subtotal得到每一列的最大值:

=SUMPRODUCT(--(A1:D1=SUBTOTAL(4,OFFSET($A$1,0,COLUMN($A$1:$D$4)-COLUMN($A$1),ROWS($A$1:$D$4)))))

这通常应该没问题,但是 Offset 是一个不稳定的函数,可能会导致大型工作表出现性能问题。此外,这种偏移和小计的组合是 Excel 特有的,不适用于 Open Office 或 Google 表格。

【讨论】:

谢谢 - 感激不尽。 嗨,谢谢你的回答,不幸的是,正如你提到的,这对 openoffice Calc 不起作用,这是我需要的解决方案。 它确实给了我一个分界点来尝试为 OpenOffice 解决这个问题

以上是关于列中其他单元格中的 Openoffice Calc(或 Excel)计数匹配的主要内容,如果未能解决你的问题,请参考以下文章

openoffice calc - 换行导致单元格中的重复值(pandas/openpyxl)

有没有办法从 OpenOffice Calc 中的单元格中提取子字符串?

计算单元格中的字符数 (OpenOffice Writer)

在 OpenOffice Calc 中突出显示列中的重复值

OpenOffice Calc 中的列加空白单元格的总和

OpenOffice.org Calc SUMIF 语句