是否有一个Excel数组公式可以针对常数计算不同值的频率并以最大频率返回该值?

时间:2019-07-16 09:30:10

标签: excel excel-formula

我从数据库中获得的数据显示了用户如何使用设备登录日常任务。我需要tag将每台设备分配给特定用户,然后决定将每台设备分配给使用最多的用户。

我需要拿出一个简单的表格,如下例所示:

*Sample image showing dataset and desired output*

每个用户的源数据在多天内都有多个条目,数据集可以增长到2万行以上(因此数据透视表不是理想的解决方案)。

提供的示例数据集仅包含~700行,少于我正在处理的数据集的5%行。

注意:

  1. 我可以生成唯一设备ID的列表,但需要K列的帮助,如上面的示例图片所示
  2. 完整数据集的唯一设备列表约为2K。

在示例文件中,我生成了一个数据透视表,其中具有作为行的唯一设备和作为列标题的用户。对于每个用户,我们可以找到每个设备的使用次数/使用频率。

然后我使用了一个数组公式来为用户提供每个唯一设备(枢纽摘要表的 BK列)的最大使用频率。

*Sample pivot table generated*

但是,由于数据集会随着时间增长,因此不希望使用此方法。我需要一个动态公式来执行数据透视表的工作,并为每个唯一设备返回最高频率的用户。

1 个答案:

答案 0 :(得分:0)

您可以按照以下公式使用某些内容:

=INDEX(
  $B$2:$B$8,
  MATCH(
    MAX(  MMULT(  --($B$2:$B$8=TRANSPOSE($B$2:$B$8)),  --($A$2:$A$8=$E$1)  )  ),
          MMULT(  --($B$2:$B$8=TRANSPOSE($B$2:$B$8)),  --($A$2:$A$8=$E$1)  ),
  0))

如果出现平局,则返回出现在列表中第一位的用户。

enter image description here


它是这样的:

  1. 创建一个与设备用户列表长度相同的向量,并包含给定设备上给定用户的登录次数

1.1。创建一个矩阵:乘以该值,输入中的每个User值将被赋予输出中该User的所有条目

1.2。创建向量:如果设备与我们要确定所有者的元素相同,则每个元素都是一个

1.3。将以上两个相乘

  1. 确定此列表中的最大值

  2. 找到该最大值最早出现的位置

  3. 获取与此事件对应的用户名