Excel 跨多个条件计数

Excel 跨多个条件计数

这对 Excel(我)来说是一个有趣的挑战。我有一个包含以下列的电子表格:

Customer   Date    lat.  long.

现在,初始数据集中有 10,000 个这样的数据。我想要一个公式,它能够让我:

  1. 查找未来六个月内的所有其他记录。
  2. 计算此客户与#1 中的其他每个记录之间的距离。
  3. 计算六个月以内和一英里以内的数字。
  4. 对数据集中的每个客户重复此操作。

我知道有计算距离的方法,但最主要的是要弄清楚如何同时计算未来六个月的距离和距离,而无需预先计算 10K x 10K 网格中的所有距离。

现在,如果我使用一种语言,我只需进行循环并检查每个项目并让它运行。然而,挑战在于制作原型并向朋友证明这在 Excel 中是可行的。

根据评论添加附加说明:

对我来说,主要问题不是距离计算,而是获取每个结果的数量,然后遍历整个列表。例如:

FIRST     12/01/1990   20  30
SECOND    04/02/1991   40  50
THIRD     05/16/1991   10  20
FOURTH    07/22/1991   50  60

现在假设我想要的是:未来六个月的计数以及任何 xy(最后两位数字),当它们相加时距离当前行当前添加的 xy 都小于 51。

对于少量条目,我可以简单地创建另一列,首先计算并进行计数。我不确定如何设置,以便它只需要接下来的六个月,然后只在单个单元格中对 xy 计算运行 countif。在我看来,我想要一个日期足够接近的数组结果,然后对数组中的每个成员进行距离计算,然后计算所有出现正数的成员。但在 Excel 中实现它有点困难。

有什么建议或其他指示吗?

感谢:D

答案1

您可以使用SUMPRODUCT

  • 统计未来 6 个月的客户数量:
    =SUMPRODUCT(([date]-[@date]<=183)*([date]-[@date]>0))
  • 使用非常简单的公式(例如在平面上)计算距离少于 20 个单位的客户:
    =SUMPRODUCT((SQRT(([@[lat.]]-[lat.])^2+([@[long.]]-[long.])^2)<20)*1)
  • 在一个公式中结合两个标准:
    =SUMPRODUCT(([date]-[@date]<=183)*([date]-[@date]>0)*(SQRT(([@[lat.]]-[lat.])^2+([@[long.]]-[long.])^2)<20))

在此处输入图片描述

相关内容