如何找到最高价值并返回Excel中的两个第一个相邻单元格值?

时间:2017-09-30 12:59:06

标签: excel indexing max match textjoin

我想有两个第一个值,但我有两个完全相同的最高值,如我的最高值是20和两个人有20所以Excel返回我第一个人但不是第二个我希望有第二个。我的公式是:

French one: =INDEX(D3:D14;EQUIV(MAX(H3:H14);(H3:H14);0))
English one: =INDEX(D3:D14;MATCH(MAX(H3:H14);(H3:H14);0))

它让我回到了例如#34; John"我希望它能让我和#34; John Alison"因为约翰和艾莉森都有20个最高价值 非常感谢你

2 个答案:

答案 0 :(得分:1)

尝试在K2中使用此公式

=IFERROR(INDEX(D$3:D$14;SMALL(IF(H$3:H$14=MAX(H$3:H$14);ROW(H$3:H$14)-ROW(H$3)+1);ROWS(K$2:K2)));"")

CTRL + SHIFT + ENTER 确认并复制

这将为您提供连续单元格中的所有匹配

答案 1 :(得分:1)

如果您的Excel版本支持较新的函数,请使用此数组公式。

var rows = table.Length;
var cols = table.First().Length;
var header = $"┌{string.Join("", Enumerable.Repeat("──┬", cols - 1))}──┐";
var middle = $"├{string.Join("", Enumerable.Repeat("──┼", cols - 1))}──┤";
var footer = $"└{string.Join("", Enumerable.Repeat("──┴", cols - 1))}──┘";

Console.WriteLine(header);
for (var i = 0; i < rows; ++i)
{
    foreach (var cell in table[i])
        Console.Write($"│ {cell ?? " "}");
    Console.WriteLine("│");
    if (i < rows - 1)
        Console.WriteLine(middle);
}
Console.WriteLine(footer);

如果您的Excel版本不支持较新的功能,请点击标记以获取有关替代方案的建议。

enter image description here