Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反规范化表格数据-Excel函数_Excel_Excel Formula_Vba - Fatal编程技术网

反规范化表格数据-Excel函数

反规范化表格数据-Excel函数,excel,excel-formula,vba,Excel,Excel Formula,Vba,我有一个Excel时间表/矩阵,需要“非标准化”,以便准备数据用于数据透视表 我的表格包含时间表条目,每个单元格表示一个15分钟的时间段,专用于特定任务行=时间段列=日期 例如: 当前数据 A B C D E .. .. ----------- ----------- ----------- ---------- ---------- ----------- 1|

我有一个Excel时间表/矩阵,需要“非标准化”,以便准备数据用于数据透视表

我的表格包含时间表条目,每个单元格表示一个15分钟的时间段,专用于特定任务行=时间段列=日期

例如:

当前数据

    A           B           C           D           E           ..      ..
    ----------- ----------- ----------- ----------  ----------  -----------
1|              01-Jan-14   02-Jan-14   03-Jan-14   04-Jan-14   ..      ..
2|   00:00      task1       task3       task3       task1       ..      ..
3|   00:15      task1       task3       task2       task1       ..      ..
4|   00:30      task2       task3       task2       task1       ..      ..
5|   01:45      task3       task3       task3       task2       ..      ..
    ..
    ..
新表中的预期结果:

    A           B           C
  ------------  ----------- ------  
1|   Date       Task        Count  
2|   01-Jan-14  task1       2 
3|   01-Jan-14  task2       1
4|   01-Jan-14  task3       1
5|   02-Jan-14  task3       4 
6|   03-Jan-14  task3       2
7|   03-Jan-14  task2       2
8|   03-Jan-14  task1       3
9|   04-Jan-14  task2       1
..
..
请注意,我有固定的行数、时隙和可变的列数,尽管我在闰年的每一天都有一列,但在某些年份会导致更少的天/列


我希望尽可能避免VBA,但是,如果这些解决方案可以解决我的问题,则不会忽略这些解决方案。

如果没有VBA,我可以提供以下解决方案:

在你想要的结果

A2 =INDEX(CurrentData!$1:$1,,(ROW(A1)-1)/4+2)
B2 =INDEX(CurrentData!$2:$5,MOD(ROW(A1)-1;4)+1,(ROW(A1)-1)/4+2)
这些公式中的4必须更改为行数。以及5美元到你的行数+1

这应该在透视表中可用。计数是数据透视表的任务

问候


Axel

编辑:应该使用默认的英文列表分隔符非常感谢-稍微调整一下,使其与我的实际工作表和行数以及起始位置都与示例不同。但是你的解释起了作用。非常感谢。