如何在Google文档电子表格中返回文本值范围内最常出现的文本值?

时间:2018-05-07 03:15:31

标签: google-sheets

我有一个范围B2:B7,其中包含代表某些内容的文本值,但我想要的是让一个单元格显示该范围内出现最多的文本值。

例如,如果我的范围包含文本值{"红色","绿色","绿色","蓝色", "绿色","蓝色"},单元格中显示的平均值为"绿色"。

我该怎么做?

4 个答案:

答案 0 :(得分:0)

您可以通过添加数字列来执行此操作,以便您轻松计算每一行。

enter image description here

然后检查A列中的唯一值

=UNIQUE(A2:A7)

此示例中的结果为

enter image description here

然后使用sumif函数=sumif(A:A,E1,B:B)

计算每个唯一值的频率

最后查找与最大值=vlookup(max(D:D),D:E,2,false)对应的单词(下面的单元格G2)

enter image description here

答案 1 :(得分:0)

我在此处找到的替代解决方案:https://productforums.google.com/forum/#!topic/docs/4cpTjqVH0bs

假设您的值在A列中,您可以使用以下内容获得显示唯一值及其相应计数的结果:

=QUERY({A:A,A:A},"Select Col1, Count(Col2) Where Col1<>'' Group by Col1 Label Col1 'Name',Count(Col2) 'Count'")

有关QUERY功能的更多信息,请访问:https://support.google.com/docs/answer/3093343?hl=en

答案 2 :(得分:0)

我找到了一个解决方案,可以解决我在问题中简化的实际问题。 (这是我到目前为止每年每小时的记录。)

My spreadsheet displaying every hour of my day with the average day at the first row

第一行是平均日。

我使用了chiliNUT's method in this answer,其中他提供了这个简洁的线条来解决我的具体情况(假设值在A1:A7范围内):

function check_Half_width_Number (input_val, event) {
    var code = 0;
    var each_val = input_val.split('');
    $.each(each_val, function (key, value) {
        code =value.charCodeAt();
        if ((12352<= code && code <= 12447) || 
            (12448<= code && code <= 12543) || 
            (19968<= code && code <= 19893)) {
            flag=1;
        }
    });
}

是的,我必须复制和编辑它24次,但这是值得的。感谢那些回答的人。

答案 3 :(得分:0)