项目中将单条数据进行汇总

该项目需从A、B同事处分别获取数据a和数据b,二者关联字段为动态md5字符串。通过从B同事表中查数据的md5,再据此从A同事处获取a数据,若channel一致,还需对相关字段进行累加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目描述:

我需要从A同事那里拿到一部分数据a,从B同事那里拿到另一部分数据b

他们之前关联字段是一个动态的md5字符串(唯一标识)

通过从B同事的表,查一条数据的md5,根据这条md5去A同事那拿a数据

如果channel一致,要将下面的字段进行累加

 //假设我已经将数据合并  
    $result = array(
    array(
      'channel'=>'zhang',
      'sex' => '1',
      'age' => '2',
      'my_age' =>-1,
      'm'=>1,
      'num'=>1
    ),
    
    array(
      'channel'=>'zhang',
      'sex'=>'1',
      'age'=>'3',
      'my_age'=>2,
      'm'=>'2',
      'num'=>5
    ),
    array(
      'channel'=>'wang',
      'sex'=>'1',
      'age'=>'3',
      'my_age'=>2,
      'm'=>'10',
      'num'=>15
    ),
    );
    
    
    
    
    //根据channel将数组进行划分
    $new = array();
                foreach ($result as $k=>$v)
                {
                    if(isset($new[$v['channel']])){
                        $new[$v['channel']]['num'] += $v['num'];
                        $new[$v['channel']]['m'] += $v['m'];
                        $new[$v['channel']]['channel'] = $v['channel'];
                    }else{
                        $new[$v['channel']]['num'] = $v['num'];
                        $new[$v['channel']]['m'] += $v['m'];
                        $new[$v['channel']]['channel'] = $v['channel'];
                    }
    
                }


//如果数组不为空

function transArr($arr=array())
{
    $i=0;
    if(empty($arr))
    {
		return false;
	}
    foreach($arr as $key => $value)
    {
        $newArr[$i] = $value;
        $i++;
    }
    return $newArr;
}

//转为索引数组
$data = transArr($new);

var_dump($data);
在WPS开发工具选项中编写VB宏代码程序,对Excel文件中源工作表表格数据进行筛选统计汇总,已知该Excel文件源工作表内的数据格式如下: 0.源工作表名为“告警记录”。 1.第一行为当前源工作表数据统计起止时间行,格式:<统计日期:年-月-日 时:分:秒 至 年-月-日 时:分:秒>。 2.第二行为当前源工作表标题行,标题[信号名称]在第二行第三列、标题[频道名称]在第二行第四列、标题[故障类型]在第二行第五列、标题[发生时间]在第二行第六列其数据格式为<年-月-日 时:分:秒>、标题[恢复时间]在第二行第七列其数据格式为<年-月-日 时:分:秒>、标题[持续时间]在第二行第八列其数据格式为<时:分:秒>、标题[故障详情]在第二行第九列。 3.第三行开始为当前源工作表数据行的起始行。 4.标题[信号名称]列单元格为第一检索序列,在标题[信号名称]列的基础上再对标题[频道名称]列单元格数据进行第二检索序列,在标题[频道名称]列的基础上再对标题[故障类型]列单元格数据进行第三检索序列,[信号名称]列、[频道名称]列与[故障类型]列为“多层嵌套序列关系”。 5.标题“故障详情”列单元格数据字符串格式:<[频道名称][故障类型]>。 上述描述完该Excel文件源工作表内的全局数据格式的前提下,请另新建一页工作表并命名“主播出节目故障统计表”并满足以下针对源工作表节目故障筛选统计的要求: 0.在“主播出节目故障统计表”工作表第一行处,合并第一行第一列/第二列/第三列/第四列/第五列/第六列,并将源工作表第一行单元格数据字符串进行复制到该处合并单元格内加粗显示; 1.在“主播出节目故障统计表”工作表第二行创建标题行并字体加粗:[影响频点]、[影响节目]、[故障类型]、[发生时间]、[结束时间]、[持续时间(秒)]; 2.规定“主播出节目故障统计表”工作表标题[发生时间]和[结束时间]整列单元格数据字符串格式设置为:<年-月-日 时:分:秒>显示,[持续时间]列单元格数据字符串格式由<时:分:秒>转换为<秒>显示,工作表单元格全部居中显示; 3.依据源工作表内标题“信号名称”整列单元格数据进行第一次筛选相同名称行,对筛选相同名称行再次依据标题“频道名称”整列单元格数据名称是否相同进行第二次筛选,在标题“频道名称”整列单元格数据名称相同的前提下再次对标题“故障类型”整列单元格数据名称是否相同进行第三次筛选,三者关系为多层嵌套子序列关系; 4.根据第3点在筛选行中将相同标题“信号名称”整列单元格数据依次赋到标题[影响频点]下方单元格,将第二次筛选出的相同标题“频道名称”整列单元格数据对应赋到标题[影响节目]下方单元格,将第三次筛选出的相同标题“故障类型”整列单元格数据对应赋到标题[故障类型]下方单元格; 5.根据第3点在源工作表筛选行中将筛选出的行对应的[发生时间]、[恢复时间]、[持续时间]对应赋到“主播出节目故障统计表”工作表标题[发生时间]、[结束时间]、[持续时间(秒)]; 6.针对“主播出节目故障统计表”工作表进行主次排序,主排序:将[发生时间]整列单元格进行降序排序处理,次排序:将[节目名称]整列单元格进行降序排序处理。 根据源工作表生成“主播出节目故障统计表”,待“主播出节目故障统计表”工作表数据筛选创建完后,请再另新建一页工作表并命名“主播出节目汇总分析表”并满足以下针对“主播出节目故障统计表”工作表节目故障信息汇总分析的要求: 0.在“主播出节目汇总分析表”工作表第一行处,合并第一行第一列/第二列/第三列/第四列/第五列/第六列/第七列/第八列,并将“主播出节目故障统计表”工作表第一行单元格数据字符串进行复制到该处合并单元格内加粗显示; 1.在“主播出节目汇总分析表”工作表第二行创建标题行并字体加粗:[影响频点]、[影响节目]、[故障类型]、[发生日期]、[发生时间]、[结束时间]、[持续时间(秒)]、[累加时间(秒)]; 2.对“主播出节目故障统计表”工作表标题“影响节目”整列单元格数据“节目名称”依次进行名称相同筛选,并针对相同名称筛选出的行数据进行以下汇总统计要求:0.[发生时间]和[结束时间]列单元格数据字符串格式:<年-月-日 时:分:秒>;1.针对筛选行的标题[故障类型]列单元格数据再次进行分类筛选,并对每种类别的[故障类型]所对应多行的标题[发生时间]列单元格以<年-月-日>是否相同进行分类再进行判断:0.针对<年-月-日>相同行:第一项先选取[发生时间]列相同<年-月-日>中最小<时:分:秒>所在的单元格数据作为当前[故障类型]在该<年-月-日>段内的[发生时间],第二项再选取[结束时间]列相同<年-月-日>中最大<时:分:秒>所在的单元格数据作为当前[故障类型]在该<年-月-日>段内的[结束时间],第三项用第二项选取出的[结束时间]数减去第一项选取出的[发生时间]数即可得到在“主播出节目汇总分析表”工作表中该<年-月-日>段内的标题[持续时间(秒)]数,第四项在“主播出节目故障统计表”工作表筛选行中用<年-月-日>相同所在行对应的[持续时间(秒)]数进行累加即可得到在“主播出节目汇总分析表”工作表中该<年-月-日>段内的标题[累加时间(秒)]数,第五项“主播出节目汇总分析表”工作表中该相同<年-月-日>段对应的标题[发生时间]为第一项选取出的[发生时间],标题[结束时间]为第二项选取出的[结束时间]。2.将筛选结果依次对应“主播出节目汇总分析表”工作表标题行下方单元格进行赋。 3.针对“主播出节目故障统计表”工作表标题[影响频点]、[影响节目]、[故障类型]分别依次赋到“主播出节目汇总分析表”工作表标题[影响频点]、[影响节目]、[故障类型]; 4.“主播出节目汇总分析表”工作表标题[发生日期]列单元格数据复制所在行标题[发生时间]列单元格数据(格式:年-月-日 时:分:秒),标题[影响频点]、[影响节目]、[发生日期]列单元格数据对进行相同单元格合并居中处理,标题行[发生时间]和[结束时间]两整列单元格数据字符串格式设置为:<年-月-日 时:分:秒>显示,[持续时间(秒)]和[累加时间(秒)]列单元格数据字符串格式设置为<秒>显示。 5.将“主播出节目汇总分析表”工作表标题行顺序设置为:[影响频点]、[影响节目]、[故障类型]、[发生日期]、[发生时间]、[结束时间]、[持续时间(秒)]、[累加时间(秒)],其中先将[影响频点]列相同单元格数据进行合并居中处理保持不变的前提下再将[影响节目]列相同单元格数据进行合并居中处理保持不变的前提下再将[故障类型]列相同单元格数据进行合并居中处理保持不变的前提下再将[发生日期]列相同单元格数据进行合并居中处理。
最新发布
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mr.杰瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值