这可能有一个我尚未找到的简单解决方案 . 但这是情况 .
我在Excel表格中有数据:
这是从模拟生成的日志文件 . 模拟运行数十次(变量),每次运行生成一个块,从“-------------------”开始,在下一个“-----之前结束------------“分频器 . 这些分隔线之间的行数是可变的,但某些事情是固定的 . 列的数量和顺序以及作为分隔符的第一行和单元格,同一列中具有日期戳的下一行,下一行具有列 Headers . 分隔符和日期戳仅包含在1个单元格中 .
我需要做的是为每次模拟运行注意CNT和SIM_TIME的MAX . 然后我将取其平均值 . 我只需要从屏幕截图中为“Floor 1”表执行此操作 .
什么是最好的方法?我应该使用哪些功能? (如果2007年没有新功能,我有Office 2010)
2 回答
一般方法,例如:
数据表:Sheet1
单独表格的结果:Sheet2
数据中的行数:单元格F2
= COUNTA(!Sheet 1中B:B)
中间结果,数据集单元格A3的行
= MATCH(Sheet1!$ B $ 1,OFFSET(Sheet1!$ B $ 1,A2,0,$ F $ 2),0)A2
中间结果,下一个数据行Cell B3
= IF(IFERROR(N(A4),0)= 0,IF(ISNA(A3), “”,$ F $ 2),A4)
CNT数据集的最大值,单元格C3
= IF(B3 <>“",MAX(OFFSET(Sheet1!$B$1,$A3+2,0,$B3-$A3-3)),"”)
最大SIM_TIME,单元格D3
= IF(C3 <>“",MAX(OFFSET(Sheet1!$B$1,$A3+2,3,$B3-$A3-3)),"”)
数据集中的日期
= IF(D3 <>“",OFFSET(Sheet1!$B$1,$A3,),"”)
要展开以显示所有可用数据的结果,请将范围C3:E3复制到与数据中一样多的行 . 任何额外的行将在A列显示N / A,在其他行显示空白
屏幕截图结果:
公式的屏幕截图:
我不确定我有你想做的事 .
也许这样的事情会起作用,虽然它不是自动的 . 我假设每个模拟的最后一个值是MAX值 .
将以下公式放在单元格"I4"
=if(B5 = "---------" ; B4 ; "")
将细胞公式向下拉至"Floor 1"的最后一行
计算平均值
=average(I:I)
. 不要把这种类型放在第一列!笔记
使用与单元格B22一样多的"-"
您可能希望在I和J之间插入新列,以便平均SIM_TIME . 程序是一样的 . 只有细胞发生变化 .
您可以使用宏轻松地自动执行此过程 .