【问题标题】:Excel: Calculate a cell based on values below matching criteria from another columnExcel:根据低于另一列匹配条件的值计算单元格
【发布时间】:2021-07-21 19:01:56
【问题描述】:

所以,我有一个字母和数字列表,每个字母都有一个分配给它的数字。在单独的列中,我有一个字母的实例 - 我将这些行称为父行。每个父行在数字列中都有一个空值。我希望能够计算给定字母的父行下方的数值的模式,并用它填充父行号。 (见截图)。我会为多个父行执行此操作 - 我希望能够通过空白值过滤数字行并填写公式。这甚至可能吗?

我尝试过使用 =MODE(IF("LetterColumn"="Letter","Numbers")

“F”的模式为 10。 “G”的模式为 9。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    =MODE.MULT(C3:INDEX(C:C,MAX((B:B=A2)*(ROW(B:B))))) 不确定这是否是您的意思,因为您没有显示所需的结果,但这使用 MODE(.MULT) 从下面的单元格到字母等于的最后一个单元格的范围。 前提是该范围不显示示例中的间隙。 如上所述,每次更改单元格时都会重新计算偏移量。 INDEX 不会,因此它只会在影响公式的范围发生更改时重新计算,这与 OFFSET 不同。

    【讨论】:

    • 避免使用OFFSET :-) 的有趣解决方案。为了避免“溢出”错误,您应该在MODE.MULT 之前添加“@”符号。
    • 您能解释一下为什么添加@ 会改进公式吗?
    • 公式下方的单元格已被值阻止。如果找到多个有效结果,则公式将尝试溢出,如果两个(或更多)值同样频繁地出现,情况就是如此。由于它不能溢出,它会显示一个“错误”。 “@”会告诉公式只提供一个结果!!
    • 或者您将公式包装在TRANSPOSE 中,让溢出发生在相邻的列中。这样,用户会看到,多个值出现的频率相同。
    • 没有溢出。它只是计算出现次数最多的并显示出来。
    【解决方案2】:

    我使用OFFSET 函数来避免循环引用。

    C2 中的公式:=MODE(OFFSET(C2,1,0,COUNTIF(B:B,B2)-1,1))

    结果:

    注意事项:

    • 为了工作,B 中的值需要连续排列。
    • 大量使用 OFFSET 公式会降低 Excel 的速度

    如果您需要解释,请告诉我。

    【讨论】:

    • 这与 SUMIF 完美搭配,但我需要 MODE。
    • @wheel58m: 好了!
    • B值需要连续排列是什么意思?
    • 所有相同的字母(例如“F”)必须一个接一个地出现在另一个的下方,即不能出现其他字母(例如“G”)。
    • 这个限制的原因是OFFSET公式只能提供连续的单元格范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多