首页
学习
活动
专区
圈层
工具
发布

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

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

12.4K30

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

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

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

    Python操控Excel:使用Python在主文件中添加其他工作簿中的数据

    标签:Python与Excel,合并工作簿 本文介绍使用Python向Excel主文件添加新数据的最佳方法。该方法可以保存主数据格式和文件中的所有内容。...3.想要在每个工作表的最后一行下面的空行开始添加数据。如图2所示,在“湖北”工作表中,是在第5行开始添加新数据。 使用Python很容易获取所有Excel工作表,如下图3所示。...这里,要将新数据放置在紧邻工作表最后一行的下一行,例如上图2中的第5行。那么,我们在Excel中是如何找到最后一个数据行的呢?...图4 打开并读取新数据文件 打开新数据文件,从中获取所有非空的行和列中的数据。使用.expand()方法扩展单元格区域选择。注意,从单元格A2开始扩展,因为第1列为标题行。...图6 将数据转到主文件 下面的代码将新数据工作簿中的数据转移到主文件工作簿中: 图7 上述代码运行后,主文件如下图8所示。 图8 可以看到,添加了新数据,但格式不一致。

    12.5K20

    链表----在链表中添加元素详解--使用链表的虚拟头结点

    在上一小节中关于在链表中头部添加元素与在其他位置添加元素在逻辑上有所差别,这是由于我们在给链表添加元素时需要找到待添加元素位置的前一个元素所在的位置,但对于链表头来说,没有前置节点,因此在逻辑上就特殊一些...为了针对头结点的操作方式与其他方式一致:接下来我们就一步一步引入今天的主题--使用虚拟头结点。 首先来看看之前的节点结构--第一个是头结点 ?  ...则dummyHead节点变为了0这个节点(头结点)的前置节点,则现在所有节点都有了前置节点,在逻辑可以使用统一的操作方式。...size = 0; } (3)改进之前的add(int index,E e)方法,之前对在头结点添加元素单独做了处理(if-else判断),如下: 1 //在链表的index(0--based...//在链表的index(0--based)的位置添加新的元素e (实际不常用,练习用) public void add(int index, E e) { if (index

    2.8K20

    PQ-M及函数:对比Excel,一次搞定5个最常用的文本函数

    小勤:大海,最常用的文本类处理函数给我讲讲呗。 大海:好的,在PowerQuery里,文本类函数可能用得比数值计算函数还要多。...接下来我们到Power Query中练一练【注意:下面写公式时,公式中对字段名的引用,不需要手工输入,双击公式窗口右侧的“可用列”中的相应字段名称即可自动填入】。...Step-04:添加自定义列,取经上一步骤清除了空格的文本的左边3个字符= Text.Start([#"PQ-清理空格"],3) Step-05:添加自定义列,取经清除了空格的文本的右边3个字符= Text.End...([#"PQ-清理空格"],3) Step-06:添加自定义列,取经清除了空格的文本第2个开始的3个字符= Text.Middle([#"PQ-清理空格"],1,3) 小勤:嗯。...对了,印象中这些好像都是可以直接操作得到结果的?像这个菜单: 大海:对的。这些基本的函数实际都可以通过操作来得到结果,但是,这几个常用的函数,还是要记住并熟练使用,毕竟将来很可能要进行嵌套使用。

    1.2K40

    1.6 PowerBI数据准备-数据类型及M语言中的数据类型转换

    因此,PowerQuery会有如下两种场景转换数据类型:1 数据加载前通过鼠标“点点点”调整数据类型是数据清洗的必要步骤;2在添加自定列等公式中使用函数转换数据类型。...数据导入PowerQuery后,使用这个日期时间列与日期表建立关系,在画布中,会发现很多交易数据都没有和日期表对应上,而是对应在空白上。...这个原因比较隐蔽,在PowerQuery中没有对日期时间做处理,数据加载后,在数据视图中,日期时间列的时间没有用而且显示又很长,被改成了日期类型或者短日期格式,从表面上看关系两端的值一模一样,但这种操作并没有改变它内在的值...打开PowerQuery,点击数据表的日期时间列标题左侧的数据类型图标,选择日期,在跳出的对话框中选择添加新步骤。图片也可以选中日期时间列,点击菜单栏转换下的日期,选择仅日期,结果是一样的。...提示:1 如果时间点有分析需要,可以先进行复制列操作,再进行上述操作。2 虽然DAX也可以提取日期,但因为此操作属于数据清洗的范畴,建议在PowerQuery中处理。

    39010

    2.6 PowerBI数据建模-新建列的4种方法及其优先级

    PowerQuery:在数据清洗的过程中添加列,处理后加载到模型。VAR过程列:不生成物理列,在计算列的计算过程中,使用VAR现调取现使用,用后抛弃。...一个几百M的模型,已经很大了,在模型中一个1000万行的表中使用RELATED新建一列生成的文件,比在PowerQuery中合并查询生成的文件大30M左右。优先级建议那优先使用哪种方法新建列呢?...甚至可以在书写度量值的过程中,在VAR表中使用ADDCOLUMNS新建列,然后基于这个VAR表计算度量值。3 如果必须新建物理列(数据表中存在的列),能在数据源中新建列,就优先在数据源中新建列。...4 数据源不方便调整的话,能在PowerQuery中添加列,就在PowerQuery中添加列。...注意,在使用增量刷新的表中,该方法不适用,因为它仅更新增量刷新的行,反而是DAX计算列会在增量刷新后更新所有的行。5 以上皆不可,使用DAX新建列。

    42500

    【强强联合】在Power BI 中使用Python(2)

    dataframe格式数据,“loc=1”代表在第一列数据后插入一列,列名是“add_100”,值是“Value”的值+100,第一行是1,add_100列第一行就是101,以此类推: ?...在powerquery数据清洗中使用较多的Python功能一定会有正则,因为powerquery本身是没有正则的,所以这时候调用Python来进行正则就显得尤为重要,否则你可能需要在powerquery...中添加很多步骤也不一定能得到想要的结果。...在IDE中运行无误后复制到powerquery的Python脚本编辑器中: ? 点击确定,返回结果: ? 后面两列就是我们想要的手机号和邮箱了。...当然,数据清洗的整个流程是复杂多变的,结合本文所讲的内容,希望大家都能充分挖掘powerquery和Python在数据清洗过程中的优缺点,结合起来使用,势必能事半功倍。

    4K31

    在Android开发中如何使用OpenSL ES库播放解码后的pcm音频文件?

    支持pcm数据的采集和播放 支持播放的音频数据来源广泛,res、assets、sdcard、在线网络音频以及代码中定义的音频二进制数据   和Android提供的AudioRecord和AudioTrack...如果希望减少拷贝,开发更加高效的Android音频应用,则建议使用Android NDK提供的OpenSL ES API接口,它支持在native层直接处理音频数据。...二.使用OpenSL ES播放pcm音频数据的步骤   开发步骤如下: 创建引擎对象和接口 创建混音器对象和接口 创建播放器对象和接口 创建缓冲队列接口并给缓冲队列注册回调函数 设置播放状态,手动调用回调函数...List libraries link to the target library android log OpenSLES )   在java...absolutePath+File.separator+"input.pcm" playPcmBySL(pcmPath)   需要注意的是,pcm文件可以通过使用ffmpeg解码mp3文件得到,但是在解码的时候需要注意的是

    1.7K10

    BI-SQL丨Drop & Alter

    在PowerBI中,如果我们针对某些数据清洗操作进行修改的话,只需要打开高级编辑器查看M语言,对特定的语句进行修改删除就可以了。...但是在数据库仓库中,我们往往需要借助Drop和Alter或者其他语句才能对数据仓库进行修改。 为什么在数据仓库中我们不能像在PowerQuery中进行同样的操作呢? 其实这个和二者的定位有关。...3.删除数据库: DROP DATABASE 数据库名称 4.保留表结构,只删除数据: TRUNCATE TABLE 表名称 Alter语法: 1.对表中添加列: ALTER TABLE 表名称 ADD...列名称 数据类型 2.对表中列进行删除: ALTER TABLE 表名称 DROP COLUMN 列名称 3.改变表中列的数据类型: ALTER TABLE 表名称 ALTER COLUMN 列名称...,因为我们做BI前端使用这类操作的情况其实并不多见,我们更多就是单纯的使用查询聚合语句。

    84720

    1.8 PowerBI数据准备-删除其他列

    删除不需要的列,提升后面处理的效率,是数据清洗的好习惯。在PowerQuery中删掉不需要的列,尤其是事实表,随着时间的推移,行数会越来越多,每多一列都可能让文件增大几十M。...操作上可以使用删除列,也可以使用删除其他列。通常来讲,用删除其他列目的性更明确,且无副作用。举例一个600多M的模型,在一次刷新数据后,突然暴涨到900多M。先检查了每个表的个数和行数,没有异常。...PowerQuery获取这个表的时候,使用的是删除列功能,模型刷新的时候自动地跟着增加了上游数据源增加的这些列,由于订单表有1000多万行,多这几列竟让文件暴涨300M,模型大小逼近1G,几近崩盘。...本以为“删除其他列”功能为了操作上的省力,其实,“删除其他列”的本质才是真正选择需要保留的列,它的好处就在于上游数据源增加新列时,PowerQuery这边依然能只保留自己需要的列。...STEP 2 如果保留的列不够,可以在此步骤对应的公式栏(在高级编辑器中也可以),调整需要保留的列名,就可以继续添加需要保留的列。

    56600

    1.22 PowerBI数据准备-笛卡尔积、有序排列组合、无序排列组合

    一个列的元素与另一个列(也可以是它本身)的元素组合在一起,是PowerQuery中常见的操作。...以上三种方式,在PowerQuery中可以按照笛卡尔积、有序排列组合、无序排列组合逐步实现。...操作步骤1 笛卡尔积STEP 1 PowerQuery获取数据后,在左侧的成员表上点击鼠标右键,选择下面的复制,生成一份成员表的副本。...STEP 2 选择新生成的表,点击菜单栏添加列下的自定义列,命名成员2,输入成员表[成员],调取成员表的成员列。STEP 3 点击成员2列标题右侧的展开按钮,选择扩展到新行。...共16种可能,结果如下:2 有序排列组合在笛卡尔积的基础上,添加辅助条件列,判断两列成员是否相等,筛选不相等的部分,最后删除辅助列。

    33300

    《Python for Excel》读书笔记连载1:为什么为Excel选择Python?

    在我们将注意力转向Python之前,简单介绍一下PowerQuery和PowerPivot,这是微软对Excel进行现代化的尝试。...然而,Excel社区使用现代Excel来引用与Excel2010一起添加的工具:最重要的是PowerQuery和PowerPivot,它们允许你连接到外部数据源并分析太大而无法放入电子表格的数据。...PowerQuery的核心功能是处理太大而无法放入电子表格的数据集。加载数据后,你可以执行额外的步骤来清理和操作数据,使其以Excel中可用的形式出现。...例如,你可以将一列拆分为两列,合并两个表,或者对数据进行筛选和分组。自Excel2016以来,PowerQuery不再是外接程序,而是可以在功能区数据选项卡上通过“获取数据”按钮直接访问。...可以将其视为传统的透视表,与PowerQuery一样,它可以处理大型数据集。PowerPivot允许你定义具有关系和层次结构的正式数据模型,并且你可以通过DAX公式语言添加计算列。

    7.5K20

    1.24 当前行减上一行,累计还原为当期

    解决方案优先考虑在上游系统中对数据源进行调整;在PowerQuery中,按门店、日期时间排序,然后按门店取出累计列当前行的上一行数据,然后用累计数字减去上一行累计数字就得到了当期数字。...操作步骤 STEP 1 PowerQuery获取数据后,选中门店列,点击菜单栏转换下的分组依据,在跳出的对话框中修改新列名为待处理,操作选择所有行。...STEP 3 点击待处理列标题右侧的展开按钮,去掉门店的挑勾以免字段重复,去掉使用原始列名作为前缀的挑勾以保持列名的简洁性。...STEP 4 如果PowerQuery生成的步骤名称是中文,在STEP3生成的查询步骤上面点击鼠标右键重命名为展开表(名称不带中文引号即可,有引号不方便后面引用该步骤)。...STEP 5 点击菜单栏添加列下的自定义列,在跳出的对话框中输入如下代码,增加一个数量列。这里调取了上一步骤的表中的门店与当前行门店相等、序号等于当前行序号-1的累计数量列的值。

    48200

    数据整理难题 | 多种类别数据全堆在一起,怎么快速整成规范的表?

    大海:哈哈,的确挺奇葩的,这种数据录入的方法不仅容易出错,而且会害屎后面做统计分析的人——当然,也会让做统计分析的人更强大。...小勤:我看是害屎的多,我看到个大神写的公式解法,但要成为这样的大神谈何容易啊: 大海:这个大神真牛!这个我也写不粗来。但你可以用Power Query啊。其实这个用PowerQuery处理并不难。...Step-1:获取数据 Step-2:添加索引列 Step-3:重复列,为分列做准备 Step-4:用空格拆分列到行 Step-5:用分隔符“-”分离型号和数量 Step-6:对分离的型号列进行透视...大海:对的。最关键的是,这些操作都是比较容易学的会的,而且,有新数据进来后刷新就可以了。用公式的话,一旦出现新型号,得重新整理。 小勤:是啊。从这个角度来讲,Power Query的适应性还更强一些。

    54130

    1.26 PowerBI数据准备-刷新报错的排查与处理

    STEP 2 点击菜单栏转换数据进入PowerQuery,在左侧选择报错的查询,点击菜单栏主页下的刷新预览,再去查询设置窗格按步骤一步一步从上向下点,找到错误的步骤。...解决方法方法1 打开PowerQuery,对Sheet1这个表刷新预览,会发现第一步就报错了,此时,点击查询设置窗格的第一步源的齿轮,在跳出的对话框中,重新选择数据源路径。...2 找不到列如果数据源的字段发生了变化,减少了列,但PowerQuery的代码不会随之改变,还会引用字段的名称,会导致刷新时报错,提示找不到列。...图片解决方法如果这个列有用,需要完善数据源;如果这个列是因为没用在数据源删除的,在PowerQuery中刷新预览,找到报错的步骤,将相关的代码清除。本例是对数量列更改了数据类型,删除对应代码即可。...解决方法这种情况,可以先打开PowerQuery,点击菜单栏主页下刷新预览的黑色小三角,选择全部刷新,此时会需要一段时间,让PowerQuery预览安排所有的查询,等到按钮颜色从灰色变回绿色后,关闭PowerQuery

    90910
    领券