列中其他单元格中的 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
我查看了sumproduct
、countif
、hlookup
、vlookup
和其他人,但我不知道该怎么做。我目前通过为每一行添加一个额外的行,并对每个单元格进行比较,然后计算布尔结果来解决它。 (单元格内容:“=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 中的单元格中提取子字符串?