首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

问与答112:如何查找一列中的内容是否在另一列中并将找到的字符添加颜色?

Q:我在列D的单元格中存放着一些数据,每个单元格中的多个数据使用换行分开,列E是对列D中数据的相应描述,我需要在列E的单元格中查找是否存在列D中的数据,并将找到的数据标上颜色,如下图1所示。 ?...A:实现上图1中所示效果的VBA代码如下: Sub ColorText() Dim ws As Worksheet Dim rDiseases As Range Dim rCell...End If Loop Next iDisease Next rCell End Sub 代码中使用Split函数以回车符来拆分单元格中的数据并存放到数组中...,然后遍历该数组,在列E对应的单元格中使用InStr函数来查找是否出现了该数组中的值,如果出现则对该值添加颜色。...Bug:通常是交替添加红色和绿色,但是当句子中存在多个匹配或者局部匹配时,颜色会打乱。

7.2K30

合并列,在【转换】和【添加列】菜单中的功能竟有本质上的差别!

有很多功能,同时在【转换】和【添加】两个菜单中都存在,而且,通常来说,它们得到的结果列是一样的,只是在【转换】菜单中的功能会将原有列直接“转换”为新的列,原有列消失;而在【添加】菜单中的功能,则是在保留原有列的基础上...,“添加”一个新的列。...比如下面这份数据: 将“产品1~产品4”合并到一起,通过添加列的方式实现: 结果如下,其中的空值直接被忽略掉了: 而通过转换合并列的方式: 结果如下,空的内容并没有被忽略,所以中间看到很多个连续分号的存在...我们看一下生成的步骤公式就清楚了! 原来,添加列里使用的内容合并函数是:Text.Combine,而转换里使用的内容合并函数是:Combiner.CombineTextByDelimiter。...显然,我们只要将其所使用的函数改一下就OK了,比如转换操作生成的步骤公式修改如下: 同样的,如果希望添加列里,内容合并时保留null值,则可以进行如下修改: 这个例子,再次说明,绝大多数的时候,我们只需要对操作生成的步骤公式进行简单的调整

2.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    备忘单:提升你的 MariaDB 和 MySQL 数据库技能

    这就是设计数据库的目的,而 MariaDB(由 MySQL 的原始开发人员开发的一个分支) 是一个极佳的选项。在本文中我使用的是 MariaDB,但这些信息同样适用于 MySQL。...你可以通过向 mysql 数据库的 USER 表中添加一个用户或使用 SQL 关键字 CREATE 来提示 MariaDB 创建一个 MariaDB 用户。...MariaDB 提供了很多方便的函数,可以用于创建列,引入数据类型定义,自增选项,对空值的约束,自动时间戳等等。...表示用户名字的字段不能为空(或 null),每一行被创建时会自动生成时间戳。...两个表的数据是独立的,但是你可能需要表一中的一个值来识别表二的记录。 你可以在表一中新增一列对应表二中的值。

    1.5K20

    常用数据库有哪些?

    按行存储在文件中(先第 1 行,然后第 2 行……) NoSQL 时序数据库 InfluxDB、RRDtool、Graphite、OpcnTSDB、Kdb+ 存储时间序列数据,每条记录都带有时间戳。...MariaDB 继承了 MySQL 小巧精悍、简洁高效、稳定可靠的特征,并与 MySQL 保持兼容。...支持最新的 SQL 2008 标准的数据类型,包括整型、数字型、字符型、布尔型、可变字符型、日期型、时间戳、自增长型以及各种二进制对象(如图片、声音和视频等)。...InfluxDB InfluxDB 是一个开源的时间序列数据库,能应付极高的写和查询并发数,主要用于存储大规模的时间戳数据(每条记录自动附加时间戳),如 DevOps 监控数据、应用系统运行指标数据、物联网感应器采集的数据及实时分析的结果数据等...Elasticsearch 常被人们用于构建具备复杂搜索功能的应用系统,比如维基百科和优步的搜索,再比如网店中搜索商品、商业智能、日志收集与分析、价格告警等。

    5.4K10

    MySQL数据类型与优化

    这招对内存中创建大临时表和文件排序,以及在存盘上创建大临时表和文件排序这两种情况都很有帮助。 6、MySQL不能将BLOB和TEXT列全部长度的字符串进行索引,也不能使用这些索引消除排序。...枚举列可以把一些不重复的字符串存储成一个预定义的集合。MySQL在存储枚举时非常紧凑,会根据列表值的数量压缩到一个或两个字节中。...日期和时间类型 MySQL可以使用许多类型来保存日期和时间值,例如YEAR和DATE。MySQL能存储的最小时间粒度为秒(MariaDB支持微妙级别的时间类型)。...3、MySQL提供了FROM_UNIXTIME()函数把UNIX时间戳转换为日期,提供了UNIX_TIMESTAMP()函数把日期转换为Unix时间戳。...MySQL schema设计中的陷阱 1、太多的列。MySQL的存储引擎API工作时需要在服务层和存储引擎层之间通过行缓冲格式拷贝数据,然后在服务器层将缓冲内容解码成各个列。

    1.6K10

    HBase Schema 设计

    时间戳:单元中的值会进行版本化控制。版本由版本号进行标识,默认情况下,版本号是写入单元的时间戳。如果在写入时未指定时间戳,则使用当前时间戳。如果读取时未指定时间戳,则返回最新时间戳的单元值。...一个行键映射一个列族数组,列族数组中的每个列族又映射一个列限定符数组,列限定符数组中的每一个列限定符又映射到一个时间戳数组,每个时间戳映射到不同版本的值,即单元本身。...我们也可以将 HBase 视为键值存储(如下图所示),可以理解行键,列族,列限定符,时间戳的组合作为键,存储在单元中的实际数据为值。...一种可能的解决方案是保留一个计数器,记录当前列序号,如下图所示: ? 表中的数据跟之前一样,只是添加了一个计数器,用于记录用户所关注的用户数量。...如下图所示,在这种设计中,不再需要计数器,列限定符使用被关注的用户名称,而不在是他们在关注用户列表中的位置。在这种设计下添加关注用户变得不那么复杂(直接添加,不需要计数器获取列序号)。

    2.3K10

    Mysql:小主键,大问题

    数据库的实现 Mysql 自增 Mysql 在内存中维护一个「自增计数器」,每次访问 auto-increment 计数器的时候, InnoDB 都会加上一个名为「AUTO-INC 锁」直到该语句结束(...在分布式的情况下,其实可以独立一个服务和数据库来做 id 生成,依旧依赖 Mysql 的表 id 自增能力来为第三方服务统一生成 id。为性能考虑可以不同业务使用不同的表。...它由一个 12 字节的十六进制数字组成,其中包含以下几部分: Time:时间戳。4 字节。秒级。 Machine:机器标识。3 字节。...一般是机器主机名的散列值,这样就确保了不同主机生成不同的机器 hash 值,确保在分布式中不造成冲突,同一台机器的值相同。 PID:进程 ID。2 字节。...snowflake 算法:和 Mongodb 的实现类似,1位符号位 + 41位时间戳(毫秒级)+ 10位数据机器位 + 12位毫秒内的序列。

    3.8K10

    sql server时间戳timestamp

    timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。...当带有 timestamp 列的一行被插入或更新时,会产生一个新的时间戳值。...备注 每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。...如果该列属于索引键,则对数据行的所有更新还将导致索引更新。 使用某一行中的 timestamp 列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。如果对行进行了更改,就会更新该时间戳值。...在使用 rowversion 时,必须指定列名。 注意: 在使用其中的 SELECT 列表中具有 timestamp 列的 SELECT INTO 语句时,可能会生成重复的时间戳值。

    22510

    高性能MySQL (一):Schema与数据类型优化

    枚举最不好的地方是,字符串列表是固定的,添加或删除字符串必须使用ALTER TABLE。除非能接受只在列表末尾添加元素,否则使用枚举不是个好主意。...1.4 日期和时间类型 MySQL可以使用许多类型来保存日期和时间值,例如YEAR 和 DATE。MySQL能存储的最小时间粒度为秒(MariaDB支持微秒级别的时间类型)。...如果需要存储比秒更小粒度的日期和时间值,可以使用BIGINT类型存储微秒级别的时间截,或者使用DOUBLE存储秒之后的小数部分。这两种方式都可以,或者也可以使用MariaDB替代MySQL。...这些函数生成的新值会任意分布在很大的空间内,这会导致INSERT以及一些SELECT语句变得很慢。...1.6 特殊数据类型 某些类型的数据并不直接与内置类型一致。这里有两个例子: 低于秒级精度的时间戳 前面也介绍了,建议使用 BIGINT 类型存储时间戳。

    1.1K40

    MYSQL基础知识和案例分享

    压缩表可以极大的减少磁盘空间占用,因此也可以减少磁盘I/O 2 MariaDB · MariaDB是由Mysql之父主导开发的Mysql一个分支,因为Oracle收购Mysql后可能存在闭源的风险。...· MariaDB可以视作Mysql的替代品,基本保证二进制兼容。...· 在InnoDB的内存结构中,每个含有自增长值的表都有一个自增长计数器(auto-increment counter)。...默认innodb_autoinc_lock_mode=1,可预判需要多少行,并一次性预生成。 · InnoDB引擎中,自增长的列必须是索引,同时必须是索引的第一列。如果不是Mysql会抛出异常。...在操作一条记录前,首先根据记录中的trx_id检查该事务是否是活动的事务(未提交或回滚). 如果是活动的事务,首先将隐式锁转换为显式锁(就是为该事务添加一个锁)。 C.

    91920

    MySQL之父解读数据库最新亮点

    所以当主(指的MariaDB的主) 改变后,备不用做什么也能直接读到信息。 你可以任何时间在MariaDB上加server。...同时我们也扩展了binlog的元数据以包括新字段。在mariadb 10.5和之后的版本中,添加新的数据类型会更方便。...列存引擎在10.5中发生了很大的变化,我没有在这一页中添加过多的内容,因为列存这个话题可以作为一个完整的话题来分享。有趣的是,列存引擎中,每一列都作为单独的二进制表单独存储。...列存引擎是专门用来做分析型查询优化的分布式引擎,可以很快的分析处理pb级别的数据。 在mariadb10.5中,列存引擎是可插拔的形式,他有自己的rpm安装包,用户可以很简单的在服务器中添加、删除。...这里有一些腾讯贡献给mariadb的特性: 压缩二进制日志中的事件,使binlog更小了;我们和腾讯一起做了列存压缩,这一点mysql是不支持的,mysql的一些版本中支持类似的部分,但是也是有限制的,

    1.2K20

    LAMP的搭建与MariaDB的基础使用

    这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。 4.默认约束:default 约束用于向列中插入默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。...5.唯一约束:unique 一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL;一个表可以存在多个 6.检查约束:check 约束用于限制列中的值的范围。...如果对单个列定义 CHECK 约束,那么该列只允许特定的值。 如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。.../support-files/my-large.cnf /etc/mysql/my.cnf #在mariadb安装目录下的support-files有好几种配置模板,已经配置好的部分参数,分别用于不同的环境...# 日期:DATE # 时间:TIME # 日期时间:DATETIME # 时间戳:TIMESTAMP # 年份:YEAR(2), YEAR(4) #

    2.3K10

    07-08 创建计算字段使用函数处理数据第7章 创建计算字段第8章 使用函数处理数据

    假如要生成一个供应商报表,需要在格式化的名称(位置)中列出供应商的位置。 此报表需要一个值,而表中数据存储在两个列 vend_name 和 vend_country 中。...在 MySQL 和 MariaDB 中,必须使用特殊的函数。 Access 和 SQL Server 使用+号。...用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。 用于处理日期和时间值并从这些值中提取特定成分(如返回两个日期之差,检查日期有效性)的日期和时间函数。...Orders 表中的订单都带有订单日期,在 SQL Server 中检索2012年的所有订单: SELECT order_num FROM Orders WHERE DATEPART(yy, order_date...MySQL 和 MariaDB 具有各种日期处理函数,但没有 DATEPART() 。

    3.7K20

    SQL基础之 时间戳

    1.基本概念 时间戳:数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节。...每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。...2.时间戳的作用 在控制并发时起到作用:  用户A/B同时打开某条记录开始编辑,保存是可以判断时间戳,因为记录每次被更新时,系统都会自动维护时间戳,所以如果保存时发现取出来的时间戳与数据库中的时间戳不相等...注意: 在使用其中的 SELECT 列表中具有 timestamp 列的 SELECT INTO 或者Insert  Select   语句时,可能会生成重复的时间戳值。...添加数据 如高并发的情况下 时间戳会相同吗 是肯定会相同的,如果你的并发在一秒内有多条信息插入,那么时间戳肯定会相同

    2.5K10

    MariaDB 创建索引

    索引用于快速找出在某个列中有一特定值的行,如果不使用索引MySQL必须从第l条记录开始读完整个表,直到找出相关的行.表越大,查询数据所花费的时间越多,如果表中查询的列有一个索引,MySQL能快速到达某个位置去搜寻数据文件...索引是一个单独的、存储在磁盘上的数据库结构,它们包含着对数据表里所有记录的引用指针.使用索引用于快速找出在某个或多个列中有一特定值的行,所有MySQL列类型都可以被索引,对相关列使用索引是提高查询操作速度的最佳途径...,不仅占用磁盘空间,而且会影响语句执行效率 ● 避免对经常更新的表进行过多的索引,并且索引中的列尽可能少 ● 对经常用于查询的字段应该创建索引,但要避免添加不必要的字段 ● 数据量小的表最好不要使用索引...1.普通索引:MySQL中的基本索引类型,允许在定义索引的列中插入重复值和空值. 2.唯一索引:索引列的值必须唯一,但允许有空值.如果是组合索引,则列值的组合必须唯一. 3.主键索引:一种特殊的唯一索引...MariaDB支持多种方法在单个或多个列上创建索引,在创建表的定义语句create table中指定索引列,使用alter table语句在存在的表上创建索引,或使用create index语句在已存在表上添加索引

    3.3K10

    MongoDB的ObjectId组成

    ObjectId的官方规范 1)Time 时间戳。将刚才生成的objectid的前4位进行提取“5e4fa350”,然后按照十六进制转为十进制,变为“1582277456”,这个数字就是一个时间戳。...接下来的三个十六进制就是“b636f7”,这三个是所在主机的唯一标识符,一般是机器主机名的散列值,这样就确保了不同主机生成不同的机器hash值,确保在分布式中不造成冲突,这也就是在同一台机器生成的objectId...前面的九个字节是保证了一秒内不同机器不同进程生成objectId不冲突,这后面的三个字节“5d6f62”是一个自动增加的计数器,用来确保在同一秒内产生的objectId也不会发现冲突,允许256的3次方等于...总的来看,objectId的前4个十六进制字符是时间戳,记录了文档创建的时间;接下来3个十六进制字符代表了所在主机的唯一标识符,确定了不同主机间产生不同的objectId;后2个是进程id,决定了在同一台机器下...ObjectId的这个主键生成策略,很好地解决了在分布式环境下高并发情况主键唯一性问题,值得学习借鉴 php插入mongodb获取id和列取id的方法 <?

    1.2K10

    MariaDB与MySQL比较

    在MariaDB中,有如下针对MariaDB与MySQL两种数据库比较的官方说法: MariaDB 和 MySQL 是世界上部署最广泛的两个开源关系数据库,虽然它们有共同的祖先,并通过 MySQL 协议保持兼容性...灾难恢复 MariaDB 和 MySQL 都支持使用备份/恢复工具和二进制日志来前滚事务的时间点恢复。...MariaDB 添加了时间点回滚功能,使 DBA 能够将数据库回退到之前的时间点,并且停机时间为零。...MySQL 只专注于其用于标准事务处理的主存储引擎 (InnoDB),但 MariaDB 已经意识到其可插拔存储引擎架构的全部潜力,以支持可扩展的分析、事务和混合事务/分析处理——而且它是不受 Oracle...列式存储格式 MariaDB 支持行和列存储。 它可以部署为交互式、即席分析的数据仓库或混合事务/分析处理 (HTAP) 数据库,将当前数据存储在行存储中,将历史数据存储在列中。

    3.5K40

    MySQL 8.0中的新增功能

    对于每条错误消息,用户都可以看到引发错误的数量,由SQL异常处理程序处理的错误数,“首次看到”时间戳和“上次看到”时间戳。给定正确的权限,用户可以SELECT从这些表TRUNCATE中重置统计信息。...QUERY_SAMPLE_TEXT添加该列以捕获查询示例,以便用户可以在真实查询上运行EXPLAIN并获取查询计划。该列QUERY_SAMPLE_SEEN被添加以捕获查询样本时间戳。...许多真实世界的工作量在一天中并不平滑,但可能会在特定时间爆发(帕累托分布式)。无论是在每秒事务处理时间,平均延迟时间和第95个百分比延迟方面,MySQL 8.0的处理都要好得多。...请参阅博客文章MySQL 8.0中的New Defaults。Mogan Tocker 在博客文章中概述了这一动机。 协议 MySQL 8.0添加了一个选项来关闭结果集的元数据生成和传输。...不会有任何AUTOINC计数器回滚。这意味着数据库恢复将在崩溃后重新建立最新的已知计数器值。它带有保证AUTOINC计数器不能获得两次相同的值。计数器单调递增,但请注意可能存在空位(未使用的值)。

    2.3K30
    领券