将excel,csv中合并块中某条记录的值应用到整个块(使用多行的值,来填充新列数据)。

news/2024/7/21 4:20:06 标签: excel, 数据处理

背景描述

excel中使用其它列的值,根据某种计算规则来填充另一列(或新列)很容易实现。但是如果需要根据合并块中的多行来填充列时,就不容易实现,由于对excel不是太常用,因此这里使用的命令行工具实现的。
示例:使用图一的数据,生成图二中的最后一列。最后一列的值来自本快中第三列标注为是的那行的第二列的值。
在这里插入图片描述![在这里插入图片描述](https://img-
在这里插入图片描述

实现

这里使用了一条级联的指令实现(假设数据为csv格式,这里的分隔符是制表符“\t”)

cat ~/Desktop/arar.txt | awk -F"\t" '{if($3 == "是"){id = $2} else if($1 != ""){id = 0} printf("%s\t%s\n",$N,id)}' | tac | awk -F"\t" '{if($4 != 0){id = $4}else{$4 = id} printf("%s\t%s\t%s\t%s\n", $1,$2,$3,$4)}' | tac
# 上面的最后一个print, 尝试打印 print $N, 但是格式乱了(没找到是什么原因),因此使用printf来保持格式。

指令分解讲解

  1. 读入数据。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4316d01e6e954153bedcaf28b2461087.png
  2. 使用变量id存储块中的值,当第三列是搜索值时更新id值,否则第一列不为空时重置id值,让后将id追加到最后一列。
    在这里插入图片描述
  3. 上面的结果还有部分不正确,也就时那些0值。此使需要逆序处理下就好。
    3.1 颠倒数据;
    在这里插入图片描述
    3.2 第四列非0,则使用当前值更新id, 遇到第四列为0,则使用id值,更新第四列的值。(颠倒后的值可以保证0前必有非零值)
    在这里插入图片描述
    3.3 值已经填充完毕,但是顺序是颠倒的,这是再颠倒一次,就可完成。
    在这里插入图片描述

到这里,数据已经填充,可以保存成文本文件,然后倒入的excel中即可,也可以复制最后一列进行粘贴。


http://www.niftyadmin.cn/n/5475863.html

相关文章

IJKPLAYER源码分析-OpenSL ES播放

前言 与IJKPLAYER处理AudioTrack播放类似,OpenSL ES的接入需要满足SDL_Aout的接口规范,所不同的是OpenSL ES播放是在native完成的,调用的是NDK接口OpenSL ES的播放能力。关于OpenSL ES的详细介绍,请参考官方文档 OpenSL ES 一文。…

Linux系统下关闭Java进程

关闭Java进程具体分为两步: 1.ps查进程ID 2.kill杀进程 具体的命令如下: ps查进程ID:ps -ef | grep java kill杀进程:kill -9 对应进程号 linux下解除被占用的端口号: 1.查看8088端口是否被占用: netsta…

身份证实名认证接口的价格一般是多少呢?基于PHP身份核验接口

身份证实名认证接口分为身份证二要素、三要素、三要素人像核验接口,被广泛的应用于婚恋、交友、电商等等一系列行业领域,身份证实名认证需要实时数据,对于数据源来说也需要可靠,那么,身份证实名认证的价格是不是很贵呢…

C++线程的使用

C11之前,C语言没有对并发编程提供语言级别的支持,这使得我们在编写可移植的并发程序时,存在诸多的不便。现在C11中增加了线程以及线程相关的类,很方便地支持了并发编程,使得编写的多线程程序的可移植性得到了很大的提高…

坐拥400W用户的免费软件,一夜关停:360、钉钉、WPS等未来几何?

谁曾预料到?那款昔日备受瞩目且风光无限的免费软件,竟然会一夜之间关停! 在2021年10月20日,今目标公司官方公告宣布正式停服。今目标,这个自2005年创立的知名品牌,作为一款备受欢迎的OA协同平台&#xff0…

C#关于多态性的详细讲解

文章目录 1. 引言2. 继承与多态性3. 虚方法和重写4. 抽象类和接口5. 多态性的应用场景6. 运行时多态性7. 委托与多态性8. 泛型与多态性9. 实例与案例分析10. 总结 1. 引言 多态性的定义和概念 多态性是面向对象编程中的重要概念,它允许不同类的对象对同一消息做出不…

面试算法-131-和为 K 的子数组

题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2 解 class Solution {public int subarraySum(…

计算机毕业设计java 基于Android的拼图游戏app

当今社会,随着电子信息技术的发展,电子游戏也成为人们日常生活的一部分。这种娱乐方式结合了日新月异的技术,在游戏软件中结合了多种复杂技术。拼图游戏流行在各种电子产品上,从计算机,掌上游戏机到如今的手机&#xf…