【问题标题】:Modify and transpose large dataset in Excel在 Excel 中修改和转置大型数据集
【发布时间】:2022-06-25 07:32:18
【问题描述】:

我正在尝试将包含每年 00:00(小时)01(月)2015(年)的每小时数据的数据库转换为 2021 年 1 月 12 日 00:00。

表格默认格式:

在默认格式中,一列包含小时和日期,第二列包含值。超过 60000 行。

我的期望:

在预期的格式中,第一列仅包含日期,而第一行包含小时。我想编写一个公式(可能带有转置?),将每个日期和小时的值传输到新单元格。
例如,对于 02-01-2021,在 01:00,对应的值为 52.42。为此,我单击“TRANSPOSE(AD27:AD50)”并填充该行。 AD 是默认格式的列位置。

不幸的是,当我用光标单击第三行(02-01-2021 所在的位置)并将其向下传递到下一行时,Excel 无法识别该模式。
虽然 Excel 应该从最后选择的列开始并转置接下来的 23 个单元格 (AD51:AD74),但它是这样的 (AD28:AD51)。

在您看到的第三张图片中:

  • 使用红笔:旧格式。日期和时间在同一个单元格中(AC 列)。

  • 使用黑笔:日期已与时间分开。日期在 A 列,时间在第 1 行。

  • 使用蓝笔:我想通过传输表格中列出的数据来填充的单元格(用红笔指出)。

【问题讨论】:

  • 什么版本的 Excel?您可以使用公式、VBA 和/或 Power Query 来做到这一点
  • 我的2202版本很新

标签: excel vba excel-formula transpose large-data


【解决方案1】:

在 2202 版本中,您应该有更新的功能,所以一个简单的方法是:

  • 选择日期/时间表中的某个单元格
    • 主页/格式为表格 然后:
    E2:  Enter a list of the dates only from your table.
           *This can be done in various ways*
    F1:  Enter a list of the hours from left to right (or use the `SEQUENCE` function to generate them)
    F2:  =TRANSPOSE(FILTER(Table1[Value],   DATEVALUE(TEXT(Table1[DateTime],"m/d/yyy"))=$E2,""))  and fill down as far as needed

结果会正确。

【讨论】:

  • 我正在努力将此建议传递给我的 excel 文件。为了更好地说明,我编辑了我的问题并上传了第三张图片。
  • @NikGe 我没有在你的第三张照片上看到你试图将我的建议适应你的数据。也不是上述尝试的结果。没有它,我无法猜测适应问题的性质。但是,如果这是您的 Windows 区域设置,TEXT 函数中的格式可能应该是 d/m/yyyy
  • @NikGe 我只看到三张上传的图片
  • 非常感谢您的贡献(实际上解决了我的问题)!问题出在日期格式上!非常感谢!
  • @NikGe 很高兴为您提供帮助。由于我的回答似乎是您所需要的,请将其标记为已接受。见What should I do when someone answers my question
猜你喜欢
  • 2019-10-24
  • 1970-01-01
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多