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

Excel公式练习35: 拆分连字符分隔的数字并放置在同一列中

这样,我们可以看到上面的结果数组中对应于单元格A1:A6中每个数据要返回的数字个数,例如“1-2”将返回2个值、“4-6”将返回3个值,依此类推。...因此,该数组的和就是我们想要返回的数字的总数: IF(ROWS($D$1:$D1)>13,"" 所以,向下复制公式时,超过13行将返回空值。...因为这两个相加的数组正交,一个6行1列的数组加上一个1行4列的数组,结果是一个6行4列的数组,有24个值。...;13,14,15,16;21,22,23,24} 这个数组包含我们想要的数值,但是也包含一些我们不想要的值。...2行的值{4,5,6,7}与右边数组第2行的值6进行比较、左边数组第5行的值{13,14,15,16}与右边数组第5行的值16进行比较,依此类推。

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

    常见的复制粘贴,VBA是怎么做的

    例如,在某些情况下,可能希望:复制包含公式的单元格区域,并在目标单元格区域粘贴值。 这正是上面例子中发生的情况。在这种情况下,可能只希望粘贴值(无公式)。...如果SkipBlanks设置为True,则被复制的单元格区域中的空单元格不会粘贴到目标单元格区域;如果设置为False,则粘贴空单元格。该参数默认值为False。...Transpose参数允许指定粘贴时是否转置复制区域的行和列(交换位置),可以设置为True或Flase。...如果Transpose设置为True,粘贴时行列转置;如果设置为False,Excel不会转置任何内容。该参数默认值为False。如果忽略该参数,Excel不会转置复制区域的行和列。...表明在执行粘贴操作时不执行运算,参数SkipBlanks:=False,即取默认值,表明粘贴空格,参数Transpose:=True表示在粘贴时行列转置。

    12.2K20

    Excel公式技巧11: 从字符串中提取数字——数字位于字符串末尾

    主要是必须将A1与包含0到9的所有数字的字符串连接起来,以防止MIN函数返回错误。...因为如果A1不包含0-9的所有数字,那么FIND函数的返回值至少有一个是错误值,由于MIN函数不会忽略错误值,会导致整个公式的结果也是一个错误值。...通过首先在A1中的字符串末尾添加一个适当的值(例如1/17、3^45,“0123456789”),可以保证该字符串将包含至少一个0-9中的每个数字(因此FIND函数的所有10个返回值都是非错误值),同时通过将字符串放在...本例就属于这种情况,因此FIND函数将对传递给它的所有10个值进行操作,而不仅仅是对第一个值进行操作。...,0)-1) ISNUMBER函数忽略传递给其参数中的错误值: =0+RIGHT("ABC456",MATCH(FALSE,{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE},0)-1

    2.7K20

    Excel公式技巧14: 在主工作表中汇总多个工作表中满足条件的值

    在《Excel公式练习32:将包含空单元格的多行多列单元格区域转换成单独的列并去掉空单元格》中,我们讲述了一种方法,给定由多个列组成的单元格区域,从该区域返回由所有非空单元格组成的单个列。...尽管在工作表的名称中不包含空格的情况下,并不需要这样,但是这样做将更好更通用。这样,公式转换为: =SUMPRODUCT(COUNTIF(INDIRECT({"'Sheet1'!...;2;3}>={1,2,3}) 两个正交数组进行比较,一个是3行1列,一个是1行3列,得到一个3行3列的数组,该数组由9个TRUE/FALSE值组成: 0+({TRUE,FALSE,FALSE;TRUE...,TRUE,FALSE;TRUE,TRUE,TRUE}) 转换为1/0值组成的数组: {1,0,0;1,1,0;1,1,1} 另外一个传递给MMULT函数的数组是: TRANSPOSE(COUNTIF(...k的值,即在工作表Sheet1中匹配第1、第2和第3小的行,在工作表Sheet2中匹配第1和第2小的行,在工作表Sheet3中匹配第1小的行。

    9.1K21

    Excel公式练习36: 找到和的加数

    导语:继续研究来自于excelxor.com的案例。太有才了!多的不说,有兴趣的朋友往下看。 本次的练习是:有时候,我们给出一个目标值,想要知道这个值是已经提供的一系列值中哪几个值的和。...公式中: TRANSPOSE(Data) 的结果为: TRANSPOSE({10,14,20,2,12,5,1,17,3}) 转置后得到: {10;14;20;2;12;5;1;17;3} 这样,公式中...根据上面公式解析的结果,此时公式中的: INDEX(MOD(INT((Arry2-1)/2^(TRANSPOSE(Arry1)-1)),2),MATCH(TRUE,MMULT(MOD(INT((Arry2...将公式向右拖放。...注意: 1.这里的解决方案理论上限制在20个数值。值越多,计算量越大,对电脑资源需求量也越大。 2.如果不存在和等于目标值的数值组合,则所有标记单元格为空。

    78030

    Excel公式练习40: 从单元格区域的字符串中提取唯一值

    关于此公式构造的关键点是字符串中所有空格的初始替换,这次替换基本上使用更多的空格。如果所使用的字符串用逗号或分号分隔,则情况将相同:我们将用更多的空格替换所有逗号或分号。...本例中由于要将公式应用于一系列单元格,故没有使用该方法,而是直接取值999。 这里取MID函数的第三个参数为99,以保证能够将单词包含到我们获取到子字符串中。...也就是说,我们将依次从上文生成的10行4列的数组中取值。...1;1;1}) 得到: {1;2;1;2;2;2} (5)此时,SUM公式为: =SUM({TRUE;TRUE;TRUE;TRUE;FALSE;FALSE}/{1;2;1;2;2;2}) 转换为: =SUM...使用大量的空格替换来拆分由分隔符分隔的字符串。 2. 从列表中获取唯一值的标准公式。 3. 将二维数组转换成一维数组的方法。 注:原文中讲解了更多公式运行原理,有兴趣的朋友可查阅原文仔细研究。

    2.2K30

    Excel公式练习90:返回字符串中第一块数字之后的所有内容(续3)

    引言:在《Excel公式练习87:返回字符串中第一块数字之后的所有内容》、《Excel公式练习88:返回字符串中第一块数字之后的所有内容(续1)》和《Excel公式练习89:返回字符串中第一块数字之后的所有内容...图3 3.将数组值转换为TRUE/FALSE ISERR({#VALUE!,#VALUE!;#VALUE!,#VALUE!;#VALUE!,#VALUE!;#VALUE!,#VALUE!...图4 4.将布尔值转换为1/0 在数组前面加上一个减号,将里面的布尔值转换为1/0。...图5 有趣的事情来了!上图5中突出显示的行正好位于我们想求的字符串之前,它是整个数组中唯一第一列为零,第二列为负的行。...现在,根据上面突出显示的行,我们要查找的字符串之前的数字是唯一包含1的行。

    1.3K10

    Excel公式技巧26: 给统计函数(GROWTH,LINEST,LOGEST,TREND)提供合法的参数值

    因此,它们可以有效地缩小操作的范围,该范围内仅包含非布尔值(或数字),这样使我们可以在函数中包含条件语句(通常使用IF函数),从而限制公式构造最终要处理的值。 例如下图1所示的工作表: ?...,因此上述公式等价于: =AVERAGE({58;23;93;35;27;40}) 得到: 46 当然,我们可以在这里使用许多其它函数替换AVERAGE并获得同样的结果,关键是几乎在所有情况下,它们都忽略布尔值...解决方案是确保我们传递的数组仅包含满足条件的值,而不包含其他值。...换句话说,将: ROW(A2:A11) 的结果: {2;3;4;5;6;7;8;9;10;11} 通过指定IF的参数logical_test的值包含: {"X","X"} 将结果强制转换成10行2列的布尔数组...","X"}是一个1行2列的数组,将生成数组: {FALSE,TRUE,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A,#N/A} 要获得正确的结果,需要使用 {"X";"X"}

    1.6K32

    Excel公式练习44: 从多列中返回唯一且按字母顺序排列的列表

    本次的练习是:如下图1所示,单元格区域A2:E5中包含一系列值和空单元格,其中有重复值,要求从该单元格区域中生成按字母顺序排列的不重复值列表,如图1中G列所示。 ?...在单元格H1中的公式比较直接,是一个获取列表区域唯一值数量的标准公式: =SUMPRODUCT((Range1"")/COUNTIF(Range1,Range1&"")) 转换为: =SUMPRODUCT...在单元格G1的主公式中: =IF(ROWS($1:1)>$H$1,"", 如果公式向下拖拉的行数超过单元格H1中的数值6,则返回空值。 3....然而,我们得到的结果数组将是一维数组且包含的元素与二维区域中的元素完全相同。...唯一不同的是,Range1包含一个4行5列的二维数组,而Arry4是通过简单地将Range1中的每个元素进行索引而得出的,实际上是20行1列的一维区域。

    4.2K31

    问与答81: 如何求一组数据中满足多个条件的最大值?

    Q:在工作表中有一些数据,如下图1所示,我想要获取“参数3”等于“A”、”参数4“等于”C1“对应的”参数5”中的最大值,能够使用公式解决吗? ? 图1 A:这种情况用公式很容易解决。...我们看看公式中的: (参数3=D13)*(参数4=E13) 将D2:D12中的值与D13中的值比较: {"A";"B";"A";"B";"A";"A";"B";"A";"B";"A";"A"}=”A”...得到: {TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE} 将E2:E12中的值与E13中的值比较: {"C1";"C2";"C1"...TRUE;TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE} 得到数组: {1;0;1;0;1;0;0;1;0;0;1} 其中的1代表同一行的列D和列E中包含“A”...0;0;0.246}) 即由同一行的列D和列E中包含“A”和“C1”对应的列F中的值和0组成的数组,取其最大值就是想要的结果: 0.545 本例可以扩展到更多的条件。

    4K30

    Excel公式练习47: 根据单元格区域中出现的频率和大小返回唯一值列表

    本次的练习是:有一个包含数字和空的单元格区域,如下图1所示示例的单元格区域A1:F6,要求生成这些数字的唯一值,并按数字出现的频率顺序排列,出现频率高的排在前面,如果几个数字出现的频率相同,则数字小的排在前面...通过在第二个参数指定的值后添加一个空字符串,Excel将空单元格解析为空字符串而不是0,因此公式: COUNTIF(Range1,Range1&"") 解析为: COUNTIF(Range1,{"1",...为了将我们的数组限制为仅考虑唯一值的数组,公式中使用以下部分: FREQUENCY(0+(Range1&0),0+(Range1&0)) 将转换为: {3;15;0;0;3;0;0;6;0;0;0;0;...可以看到,这种情形下使用FREQUENCY函数,从而将数组简化为每个值在该数组中出现次数的数组。公式中之所以在区域后添加0,是为了将空单元格转换为0。...现在,将FREQUENCY函数生成的数组传递给IF函数,以使结果数组仅包含不同的数值: IF(FREQUENCY(0+(Range1&0),0+(Range1&0)),IF(Range1"",COUNTIF

    1.7K20

    Excel公式练习37: 找到和的加数(增强版)

    在《Excel公式练习36:找到和的加数》中,讲解了一个公式,可以标出指定和的加数,然而,如果有几种组合都可以得到这个和数,该公式只能标出其中一种组合,本文讲解的公式就来解决这个问题,将所有的组合都标出来...上述部分公式将会生成一个1024行10列的大矩阵数组,为了更好地理解其运作原理,我们看一个生成的数组数量较小的版本。...有了上述详细讲解,我们再看看公式中的部分: MMULT(MOD(INT((Arry2-1)/2^(TRANSPOSE(Arry1)-1)),2),Values) 将返回名称Values定义的单元格区域中数值所有可能的组合之和...上面的数组中包含等于目标值的元素(红色字体标记),还有两个是第485个和第678个元素也等于目标值。 3....现在,我们需要返回到1024个组合的矩阵数组(即前面得到的1024行10列的矩阵),以找出这个与目标值相等的求和中涉及到的具体数值,因此,使用INDEX函数提取该矩阵数组中第27行的值: INDEX(MOD

    1.1K10

    Excel公式技巧17: 使用VLOOKUP函数在多个工作表中查找相匹配的值(2)

    我们给出了基于在多个工作表给定列中匹配单个条件来返回值的解决方案。本文使用与之相同的示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助列,另一个不使用辅助列。 下面是3个示例工作表: ?...图3:工作表Sheet3 示例要求从这3个工作表中从左至右查找,返回Colour列中为“Red”且“Year”列为“2012”对应的Amount列中的值,如下图4所示的第7行和第11行。 ?...注意,在定义名称时,将活动单元格放置在工作表Master的第11行。 名称:Arry1 引用位置:=MATCH(TRUE,COUNTIFS(INDIRECT("'"&Sheets&"'!...先看看名称Arry2: =ROW(INDIRECT("1:10"))-1 由于将在三个工作表中执行查找的范围是从第1行到第10行,因此公式中使用了1:10。...TRUE,TRUE,TRUE,FALSE,FALSE,FALSE}),0)) 转换为: =INDEX(Sheet3!

    14.1K10

    Excel公式练习34: 识别是否存在相同字母的单词

    之所以这样做的原因是,如果对于60个元素的矩阵中10个1×6数组中的任何一个(这些1×6数组中的每个数组都由E1:E10中每个单元格中的字符串依次删除“eliane”中的6个字母后组成),其所有6个元素都与此处的这些值...;6,6,5,4,6,6;4,5,5,4,4,4}={4,5,5,5,5,4}) 此时,将生成一个新的由TRUE/FALSE组成的10行6列的矩阵: 0+({FALSE,FALSE,FALSE,TRUE...要检测该矩阵数组中的任何行是否包含6个1,只需要将此10行6列矩阵乘以6行1列的单位矩阵(即{1; 1; 1; 1; 1; 1})。...但是,我们这里是查找单元格B3中的单词,刚好有6个字母,但不能保证所有单词都是6个字母,这里生成的是10行6列数组,而对于其他单词可能生成10行4列数组、10行5列数组,等等。...;TRUE;TRUE;TRUE;FALSE})*({2;0;3;6;4;2;3;6;1;4})=6) 转换为: =OR({2;0;3;6;0;2;3;6;1;0}=6) 转换为: =OR({FALSE;

    1.3K10

    Excel公式练习67: 查找重复的数据集

    公式 公式1:使用辅助列 使用辅助列将复杂的步骤拆分成几步,可能更好理解。...如下图2所示,添加了6个辅助列用来将每组中的6个数字按从小到大的顺序排列,在单元格H4中的公式: =SMALL($B4:$G4,1) 取B4:G4中的最小值。...图2 然后,在列N中使用TEXTJOIN函数将排好序的6个数字连接: =TEXTJOIN(",",TRUE,$H4:$M4) 在列O中使用COUNTIF函数统计: =COUNTIF($N$4:$N$14...对于H2中的公式,其生成的数组如下图4所示。 ? 图4 MMULT函数将返回一个1行11列的数组,其元素值代表每行匹配的数字个数。...这样传递给它的第一个数组是一个1行6列的由1组成的数组,第二个数组为上述生成的数组转置为一个6行11列的数组。

    1.2K20

    Excel公式练习:真真假假,假假真真——有多少是真?

    如下图1所示,判断单元格区域A1:C1中是否只有两个TRUE值,并返回TRUE值的数量。...图1 最简单直接的方式就是: =A1+B1+C1 因为Excel将TRUE值转换为1,FALSE值转换为0,所以上述式子结果如果为2,则表明该区域仅包含两个TRUE值。...还可以使用求和的数组公式: =SUM(A1:C1*{1,1,1}) 或者: =SUM(A1:C1*{TRUE,TRUE,TRUE})=2 或者直接使用数组函数SUMPRODUCT: =SUMPRODUCT...在单元格区域A1:C100中包含着TRUE/FALSE值,求各行中仅包含两个TRUE值的行数。...图2 仍然很简单,可先判断再求和,公式如下: =SUMPRODUCT(--((A1:A100+B1:B100+C1:C100)=2)) 或者想到矩阵,将100行3列中每行求和,然后与2比较,求等于2的数即为所要求的行数

    72520
    领券