图1 单元格区域A2:B19中是记录每月一些物品的领用数据,但是数值和物品名称输入到了一起,现在需要分别统计每种物品领用数量的总和。...幸好,输入的数据还是很有规律的,即都是数字加上物品名称,因此还是可以很方便地使用公式来得到结果。...图2 注意,由于是数组公式,应该按下Ctrl+Shift+Enter键才算完成了公式,Excel会在公式两端自动加上花括号。...在公式中,我们人为地将数据中的物品名称替换为空,然后与原数据进行对比,那么那些不相等的数据自然就是替换的物品的领用数值。...对于SUBSTITUTE(B2:B19,D2,"")+0中的+0,是为了将替换后的文本转换为数字,否则将得不到正确的结果。
有时候,我们需要从单元格数据中提取出满足条件的值。例如,下图1所示的单元格B3中的数据“NO13859724621”,我们想要得到相邻两个数字组成的最大的两位数。 ?...然而,怎么样使用公式获得这个值呢? 这就涉及到需要找到一种方法,从数据的开头开始,两个两个地取值,从而遍历整个数据,然后比较这些值,获取其中最大的值。...很自然地,我们能够想到MID函数,指定开始位置和字符数,从而返回指定字符数的值。...图2 公式中: MID(B3,ROW(A1:A100),2) 从单元格B3中的第一个字符开始,按顺序依次获得两个字符组成的数值,如下图3所示。 ?...2.上述公式中,使用了ROW(A1:A100),假设单元格数据长度为100,其实可以使用下面的数组公式: =MAX(IFERROR(VALUE(MID(B3,ROW(INDIRECT("1:"& LEN
昨天一个前端的朋友找我帮忙用excel提取代码中的汉字(字符串),可算费了劲儿了,他要提取的内容均在单引号中,但问题是没有统一的规律,同一个单元格可能存在多个要提取的内容,而且汉字中间也夹杂其他字符。...所以总结了一下提取汉字的几种情况。 一、用公式提取Excel单元格中的汉字 对于一个混杂各种字母、数字及其他字符和汉字的文本字符串,要提取其中的汉字,在Excel中通常可用下面的公式。...在B2中输入下面的公式: =LEFT(A2,LENB(A2)-LEN(A2)) 就会返回字符串中开头的几个汉字。...说明:公式先用MID函数将字符串中的每个字符分解到到一个字符数组中,然后用LENB函数返回各字符的的字符数,对于汉字会返回“2”。...返回Excel工作表界面,在B14单元格中输入公式: =提取汉字(A14) 即可取得A14单元格字符串中的所有汉字。 二、用公式提取引号(某2个相同字符)之间的内容 ?
今天的练习是:如下图1所示的数据,每个单元格中包含由换行符分隔的3个数字,现在需要提取其中10位长的数字,如图1中的B列所示。 ? 图1 先不看下面的答案,自已试试。...解决方案 公式1 可以试试下面的公式: =LOOKUP(9E+307,--MID(A2,ROW(INDIRECT("1:"& LEN(A2)-9)),10)) 该公式使用MID函数从单元格中的第1个数字开始依次取...10位数,共14个数字,这14个数字中,由于有空格的存在,所以除单元格中的10位数外,其余都是9位数。...然后使用LOOKUP函数在这些数字中进行查找,返回最大的一个数字,即单元格中的10位数。 公式2 试试下面的公式: =MID(A2,SEARCH(CHAR(10)&REPT("?"...,10)&CHAR(10),CHAR(10)&A2&CHAR(10)),10) 在单元格中搜索前后都是空格且中间是10位数的数字。
这个数字:9.9999999E+307,我们经常会在公式中用得上它。这是一个神奇的数字,在查找数值时能够发挥很大的作用。本文介绍的就是这个数字的使用技巧。...9.9999999E+307是Excel能够识别的最大数字,它通常与LOOKUP函数或MATCH函数结合使用,以查找列/行中的最后一个数字条目,或分别查找行/列中数值的最后一行行号/列号。...在本示例中,LOOKUP函数查找最后一个小于或等于查找值9.9999999E+307的条目,类似的规则或MATCH函数返回行号。...因此,要查找列中的最后一个数字条目,可以使用: =LOOKUP(9.9999999E+307,A:A) 或者从行中返回最后一个数字条目: =LOOKUP(9.9999999E+307,1:1) 类似地,...要获取数字条目的最后一行,使用公式: =MATCH(9.99999E+307,A:A) 或者,对于行,使用公式: =MATCH(9.99999E+307,1:1) 有兴趣的朋友,可以仔细研究,在需要时可以将此技术进行灵活运用
本次的练习是:有一个包含数字和空的单元格区域,如下图1所示示例的单元格区域A1:F6,要求生成这些数字的唯一值,并按数字出现的频率顺序排列,出现频率高的排在前面,如果几个数字出现的频率相同,则数字小的排在前面...单元格H1中为返回的数字数量,公式为: =SUMPRODUCT((Range1"")/COUNTIF(Range1,Range1&"")) 公式解析 在公式中,使用了3个名称,分别为: 名称:Range1...H1中的公式是一种用于确定单元格区域内不同元素数量的标准公式结构。...I1中的公式向下拖拉时,超过6个单元格将返回空,也就是公式的开头部分: =IF(ROWS($1:1)>$H$1,"", 下面看看公式中的主要构造: MIN(IF(IF(Range1"",COUNTIF...COUNTIF(Range1,Range1)+1/(Range1*10^6) 将为单元格区域内的每个值生成一个计数数组,这很重要,因为问题的症结在于根据值在该区域内的频率返回值。
引言:本文的练习整理自chandoo.org。多一些练习,想想自己会怎么解决这个问题,看看别人又是怎样解决的,这样能够快速提高Excel公式编写水平。 本次的练习是:示例数据如下图1所示。...图1 现在,想根据列A中的数据对列B中的值汇总。例如,对于列A中的“A”来说,在列B中对应的值是:1、13、14、15、16、17、18,其和为94。...我们将单元格区域A2:A21命名为“D”,单元格区域B2:B21命名为“V”。 要求只能使用公式,不能使用VBA,仅能使用上述两个命名区域名称,不能使用填充功能填充空单元格。 请写下你的公式。...解决方案 公式1:数组公式。...…… 公式并没有给出详细的解析,有兴趣的朋友可以参照前面推送的有关分析公式的文章对这些公式进行解析,相信对理解Excel函数,编写公式解决问题会有很大的帮助。
在实际工作中,我们经常需要从某列返回数据,该数据对应于另一列满足一个或多个条件的数据中的最大值。 如下图1所示,需要返回指定序号(列A)的最新版本(列B)对应的日期(列C)。 ?...图1 解决方案1: 在单元格F2中输入数组公式: =INDEX(C2:C10,MATCH(MAX(IF(A2:A10=F1,B2:B10)),IF(A2:A10=F1,B2:B10),0)) 注意这里有两个...千万不能忽略了这一要点,即如果采用以下简单方法: =INDEX(C2:C10,MATCH(MAX(IF(A2:A10=F1,B2:B10)),B2:B10,0)) 尽管此公式构造仍可以返回正确的值,但完全不能保证所有情况下都正确...原因是与条件对应的最大值不是在B2:B10中,而是针对不同的序号。而且,如果该情况发生在希望返回的值之前行中,则MATCH函数显然不会返回我们想要的值。...由于数组中的最小值为0.2,在数组中的第7个位置,因此上述公式构造的结果为: {0;0;0;0;0;0;1;0;0;0} 获得此数组后,我们只需要从列C中与该数组出现的非零条目(即1)相对应的位置返回数据即可
语法:SUM(number1,[number2],…),number1(必需):要相加的第一个数字。该数字可以是 4 之类的数字,A1 之类的单元格引用或 A1:A3 之类的单元格范围。...首先读取 Excel 文档 sum.xlsx 并获取活跃工作表;其次在单元格 A5 以及 B5 中分别写入公式 =SUM(A1:A3) 和 =SUM(A1:A3,B1:B3);最后对 Excel 文档进行保存...首先读取 Excel 文档 vlookup.xlsx 并获取活跃工作表;其次在单元格 B7 中写入公式 =VLOOKUP(A7,A1:B5,2,0);最后对 Excel 文档进行保存。...运行上述代码之前的文档如下图所示: 上述代码运行之后的文档如下图所示: 根据 A7 中的苹果查找到了金额 50。...图表 我们可以使用 openpyxl 提供的方法为 Excel 中的数据作图表,下面以柱状图举例说明: 2.1 步骤 1.创建数据的 Reference 对象以及类别的 Reference 对象。
标签:Excel技巧,保护工作表 有时候,我们想保护工作表中的公式,不让用户能够随便修改,但是又不想限制用户编辑除公式之外的数据。...步骤2:单击鼠标右键,从快捷菜单中选择“设置单元格格式”命令。在弹出的“设置单元格格式”对话框中选择“保护”选项卡,取消“锁定”前复选框中的勾选,如下图1所示。...步骤4:单击“定位条件”对话框中的“公式”单选按钮,如下图3所示,单击“确定”。 图3 此时,Excel选择工作表中所有包含公式的单元格。...步骤5:单击鼠标右键,从快捷菜单中选择“设置单元格格式”命令。在弹出的“设置单元格格式”对话框中选择“保护”选项卡,选取“锁定”前的复选框,如下图4所示。...图4 步骤6:单击功能区“审阅”选项卡中的“保护工作表”命令。 此时,如果想修改工作表中包含公式的单元格,则会弹出如下图5所示的警告框。
在使用Excel时,我们肯定会使用公式。这些公式要么会引用其他的单元格,要么会被其他单元格引用。下面我们先看看这两种情况,如下图1所示。 ?...在单元格C1中,使用公式:=A6+B1,求单元格区域A1:A5与单元格B1中的值之和,很明显,单元格A6和B1都是该公式所在单元格的引用单元格,但该公式实际使用的一些值来自于单元格区域A1:A5,该单元格区域中的单元格称为间接引用单元格...单击功能区“公式”选项卡“公式审核”组中的“追踪引用单元格”命令。单击一次,Excel绘制出直接引用单元格箭头,再次单击,绘制出间接引用单元格箭头,如下图2所示。 ? 2....按Ctrl+Shift+{键,选择当前工作表中公式单元格的所有引用单元格(包括直接和间接的引用单元格)。 4. 在公式单元格中按F2键,Excel会使用不同颜色显示该单元格直接引用的单元格。 5....单击功能区“公式”选项卡“公式审核”组中的“追踪从属单元格”命令。单击一次,Excel绘制出直接从属单元格箭头,再次单击,绘制出间接从属单元格箭头,如下图4所示。 ? 2.
图1 有一些附加条件: 排除包含数字的任何单元格 排除空单元格 排除包括公式结果为空字符串的任何单元格 在图1所示的示例中,满足条件的文本单元格共5个。...理解Excel将什么考虑为“空” 需要弄明白的是,空字符串与空单元格不同。空单元格中没有任何内容,空字符串是不显示任何结果的公式的结果。...这通常是通过使用两个双引号来实现的,它们之间没有任何内容: =IF(A9="Ok",C9,"") 两个双引号之间被称为“空文本”,在单元格中不会显示什么但会作为数据被统计。...如果使用ISBLANK函数测试包含空文本的单元格,返回的结果将是FALSE,这意味着Excel不会将空文本作为真正的空单元格。...通常,对于COUNTIF函数的条件判断使用“不等于”(即“”),但是在本示例中,我们将反转小于/大于符号的顺序,写作“>公式如下: =COUNTIF(B4:B14,"><") 该公式仅统计了包含文本的单元格
例如,下图1中单元格区域A1:A5是要使用的数据,右侧的数组公式并没有给出想要的结果。(特别说明:示例纯粹是为了演示我们要讲解的技术。) ?...图1 第一个公式使用了INDIRECT函数和ADDRESS函数组合来求单元格区域A1:A5中的数值之和。...幸运的是,Excel为提供了一个与N函数具有相似功能的T函数。与N函数一样,T函数同样具有强制返回数组的特性。N函数用于数字,T函数用于文本值。...例如,如果单元格区域A1:A5中的值是“A”、”B“、”C“、”D”、“E”,那么公式: =LOOKUP(REPT("z",255),T(INDIRECT(ADDRESS({1,2,3,4,5},1))...在《Excel公式技巧03:INDEX函数,给公式提供数组》中,讲解了从INDEX函数强制返回数组的技术,在这里也可以使用。
学习Excel技术,关注微信公众号: excelperfect 很多时候,我们都可能想要对每隔n行中的单元格求和,其中n是一个整数。如下图1所示,每隔1行求和、每隔2行求和、每隔3行求和,等等。 ?...图1 从图1的示例可知,如果我们每隔1行求和,有求奇数行或者偶数行的单元格之和两种情况,其中,奇数行求和的数组公式为: =SUM(IF(MOD(ROW($A$1:$A$15),2)=1,$A$1:$A$15,0...+Enter组合键,Excel会自动在公式两边添加花括号。...对于每隔2行求和,即求第1、4、7、10、13行中单元格之和,使用数组公式: =SUM(IF(MOD(ROW($A$1:$A$15),3)=1,$A$1:$A$15,0)) 对于每隔3行求和,即求第1、...5、9、13行中的单元格之和,使用数组公式: =SUM(IF(MOD(ROW($A$1:$A$15),4)=1,$A$1:$A$15,0)) 我们可以得到一个规律,对于每隔n行求和(n>1),其一般公式
假设有如下Excel文件,其中第二个WorkSheet中数据如下: 其中D列为公式,现在要求输出该列公式计算的数值结果,代码如下: 代码运行结果:
本次的练习是:如下图1所示,使用公式拆分列A中的字符串,从中返回列B中的字符串。...图1 你的公式应该处理任意长度的字符串和任意长度的数字——不仅仅是图1中所显示的长度。此外,不应该使用任何辅助单元格、中间公式或命名区域,或者VBA。 如何使用公式获得结果?...(注:本文来自于chandoo.org中的公式挑战栏目,供有兴趣的朋友尝试和学习。)...在单元格B2中输入数组公式: =MID(A2,1+MATCH(1,(CODE(MID(A2,ROW(A1:INDEX(A:A,LEN(A2))),1))<58)*(CODE(MID(A2&"a",ROW...A";"u";"s";"t";"r";"a";"l";"i";"a";"1";"4";"8";"4"} 2.使用CODE函数将单个字符转换Excel用来表示每个数字/字母的特定数字: CODE({"M"
有时候,在一列数据中有许多空单元格,导致数据不连续,我们需要剔除这些空单元格,让数据区域连起来。 如下图1所示,在单元格区域A1:A15中输入了一些数据,但其间有许多空白单元格。 ?...图2 注意,数组公式要求按下Ctrl+Shift+Enter组合键才算完成输入,Excel将自动在公式两侧加上花括号({})。...公式的核心部分是: SMALL(IF(LEN(A1:A15)=0,"",ROW(1:15)),ROW(A1)) 首先,获取单元格区域A1:A15中每个单元格内数据的长度:LEN(A1:A15),看其是否为...0:LEN(A1:A15)=0,如果为0,则表明该单元格为空,返回一个空值,否则返回该单元格所在的行号:IF(LEN(A1:A15)=0,"",ROW(1:15)),对于本例来说,返回数组:{1;””;...接着,对于第一个公式来说,ROW(A1)返回1,即获取该数组中最小的值,即1。 然后,使用INDIRECT函数获取第1个非空单元格的值: INDIRECT(“A” & 1) 即单元格A1中的值。
今天在做大物实验的数据分析的时候,出现了一个问题,根据gi的公式来算gi的时候,如下图所示: 当我想把公式批量应用的时候,发现那两个我不想移动的单元格也跟着变化了。...解决方案就是下面这样子的: 在希望不移动的单元格的字母和数字前面都加一个 $ 就好了 转载请注明来源:https://www.longjin666.top/?p=817
,即两个都是单行数组或都是单列数组,Excel将一个数组的元素与另一个数组中相应位置的元素“配对”。...这样,Excel返回#N/A作为结果数组中的第三个元素。 实际上,Excel为了解决传递两个大小不同的数组的问题,重新定义了两个中较小的一个,使其匹配较大的数组。...在继续刚才的MID函数示例之前,我们以另一个示例来解释。假设在单元格A1:E10中的数据如下图2所示。 ?...根据其定义,列向量当然是一维的。这里使用的技术请参阅《Excel公式技巧03:INDEX函数,给公式提供数组》、《Excel公式练习44:从多列中返回唯一且按字母顺序排列的列表》。...0)) 注意,上述公式结构使用了函数T,因此要求单元格区域A1:E10内的值是非数字的。
标签:Excel公式,SUBSTITUTE函数 有时候,可能是由于输入的原因,也可能是由于从网上直接下载的数据,数据中的字符串中夹杂着一些数字,而我们又不想要这些数字,因此,需要从字符串中删除这些数字。...例如,字符串“My2017Excel2022”删除其中的数字后,成为“MyExcel”。 使用什么公式能够达到我们的目的呢?...这样,假设字符串在单元格B2中,我们可以编写出下面的公式: =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE...,但基本原理很简单,就是使用SUBSTITUTE函数依次替换字符串中的数字1、2、3、4、5、6、7、8、9、0。...由于有十个数字,因此使用了SUBSTITUTE函数10次。 幸好只有10个数字,只需替换操作10次,如果更多的话,公式岂不很长。不知道有没有更简单的通用公式,期待朋友们一起探讨。
领取专属 10元无门槛券
手把手带您无忧上云