【问题标题】:Automatically fill out a large dataset based on number ranges根据数字范围自动填写大型数据集
【发布时间】:2016-01-24 11:15:43
【问题描述】:

我在 Excel 中有一个大表(150k+ 行),我试图根据一些初步的可用信息来填写它。我将在下面发布我当前的表结构和所需的结果,但作为我项目的大纲:我有三个主要的数据列,第四列可能有用,具体取决于推荐的方法。现有数据标识组 ID 的列、开始年份的列、结束年份的列和活动总年数的列(简单地从结束年份减去开始年份得出)。现有数据范围派生自各个成员记录的行,但这些 ID 已被删除。使用这些数据,我的最终目标是找到每年的平均组规模。我有很多工具可以解决这个问题,最终会出现在 MySQL 中。在那之前,我计划尝试从中提取一些统计数据,但同样,目标是逐年找到平均组大小(基于该组中成员数量的大小) 能够绘制过去 100 年的平均大小。我的数据如下:

  |    A   |      B       |     C      |       D        |
  |   ID   |  Start Year  |  End Year  |  Years Active  |
1 |   101  |     1967     |     1975   |       7        |
2 |   101  |     1957     |     1965   |       7        |
3 |   125  |     1960     |     1975   |       15       |
4 |   136  |     1905     |     1908   |       3        |
5 |   222  |     1964     |     1975   |       7        |
6 |   121  |     1964     |     1975   |       7        |
7 |   102  |     1952     |     1975   |       7        |
8 |   306  |     1952     |     1975   |       7        |
9 |   306  |     1972     |     1975   |       7        |
10|   172  |     1967     |     1971   |       4        |
11|   411  |     1947     |     1951   |       4        |
12|   411  |     1946     |     1950   |       4        |
13|   411  |     1946     |     1950   |       4        |
14|   411  |     1946     |     1950   |       4        |
15|   411  |     1946     |     1950   |       4        |
16|   172  |     1945     |     1949   |       4        |
17|   172  |     1963     |     1967   |       4        |
18|   301  |     1948     |     1952   |       4        |
19|   301  |     1948     |     1952   |       4        |
20|   301  |     1972     |     1976   |       4        |

以上表示是我的数据当前在 Excel 中的状态,最多 150,784 行。我目前的路径让我认为我需要能够分解开始年份和结束年份之间的日期,以了解哪个成员在哪一年活跃,以及哪个组 ID。从那以后,我知道我可以通过很长的路来做一些小计来弄清楚我需要什么,但我想知道是否有人可以想到一个公式架构或宏来使这成为一项不太不可能的任务。我觉得我迷失在多轴方法中,这似乎需要避免每年都这样做(1899-2015 年为完整数据集)。我希望我在凝视森林时错过了树木,并且有一个明显的解决方案/方法可以采取,但是您可以提供的任何建议或帮助将不胜感激。提前感谢那些做出贡献的人!

【问题讨论】:

  • 我将在下面发布我当前的表格结构和想要的结果想要的结果结构在哪里?

标签: mysql excel vba excel-formula worksheet-function


【解决方案1】:

也许扩展您的数据,比如 row1 中的年份(在 E1 中以 1899 开头)和 E2 等:

=--AND($B2<=E$1,E$1<=$C2)  

这会产生一个非常大的矩阵,但可能会使进一步的处理相对容易。将导致二进制输出的公式转换为值,处理时间应该不是什么大问题。

【讨论】:

  • 这与我的想法一致,除非可以找到更优雅的解决方案。我正在尝试复制您的结果,但遇到了一些困难,目前正在努力。感谢您的指导。
  • 我同意删除 0 值,因为无论如何我的目标是计数。我似乎必须将标题重做为值才能让您的公式返回有效结果,看起来确实如此。目前正在处理所有超过 1800 万个细胞。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
相关资源
最近更新 更多