-
-
0
-
0问题:1 001当成相同内容,条件求和 解: 1 01 001都是数字1,但是保存格式为文本,他们不是一个相同内容 那就把1 01 001都转成数字1,求和区域跟求和条件都要转 =--A2:A17 负负数学运算就可转化,因为转化后就是数组,不能使用sumif函数 =(--A2:A17=--A2)*B2:B17 这个可以当做sumif的条件判断 {100;200;300;0;0;0;0;0;0;0;0;0;0;0;0;0;0} 再sum求和就可以了 =SUM((--$A$2:$A$17=--A2)*$B$2:$B$17) 部分版本需要按shift+Ctrl+回车 如果编号中包含一些非数字内容,就用下方公式 =SUM((IFERROR(--$A$2:$A$17,$A$2:$A$17)
-
0问题:多行多列取数字,转一列 将不连续的两行数字,排除0,去重后,转成1列 解: 这是不连续的区域,我们可以一次性选中整个大区域,再过滤掉不需要的部分 =1/(1/B1:I5) 1除以数据,可以把文本/空/0都做成报错,数字会变成倒数,那就1除一次 再将多好多列的数据转一列,再去重 =UNIQUE(TOCOL(1/(1/B1:I5))) {#VALUE!;999;888;#DIV/0!;676;109;950} 再过滤掉非数字部分 =FILTER(UNIQUE(TOCOL(1/(1/B1:I5))),ISNUMBER(UNIQUE(TOCOL(1/(1/B1:I5))))) 部分版本需要按shift+Ctrl+回车 这里有新函数,返回#name错误的话,
-
0问题:两个表格时间是否有重叠交集 解: A开始A结束B开始B结束 2024/1/1 5:302024/1/1 6:322024/1/1 16:302024/1/1 17:31 要判断两个时间段是否重叠, 就判断,A开始是否在B区间中,A结束是否在B区间中,B开始是否在A区间中,B结束是否在A区间中 这4个有一个满足就表示是有重叠 这是思路,也有难难理解,自己慢慢体会 公式体现的话更抽象了,直接写,有空视频讲 =TEXTJOIN(",",1,IF((A2>=$E$2:$E$18)*(A2<=$F$2:$F$18)+(B2>=$E$2:$E$18)*(B2<=$F$2:$F$18)+($E$2:$E$18>=A2)*($E$2:$E$18<=B2)+($F$2:
-
0
-
0
-
1
-
0
-
0问题:判断是否有连续5个月不下单客户 解: 原数据中,产品/数量是无效数据,完成可以不管,只看日期客户列 先筛选出目标客户的全部采购日期 =FILTER($A$2:$A$999,$B$2:$B$999=F2) {45312;45343;45385;.....} 得到全部日期,在取月份 =MONTH(FILTER($A$2:$A$999,$B$2:$B$999=F2)) {1;2;4;4;6;6;6;7;8;8;9;9;10;10;12;12} 这里每个日期转成了月份,这些数字就表示下单的月份(有重复,不在意) 再有完整的1-12去查找,返回每个月是否下单 =MATCH(ROW($1:$12),MONTH(FILTER($A$2:$A$999,$B$2:$B$999=F2)),0) {1;2;#N/A;3;#N/A;5;8;9;11;
-
0
-
0问题:多条件vlookup查询不同列 根据不同列的进价返回对应出价 解: 查询喂食器时,需要先找到喂食器在原数据中的哪一行,取出对应的进出价格 =OFFSET($B$1:$E$1,MATCH(H2,A:A,0)-1,) {102,1002,202,2002} 可以得到对应的进出价格,但是我们的查询目标是进价,出价数字会对我们干扰,那就把进价/1,出价/0,出价就会报错排除掉了 ={102,1002,202,2002}/{1,0,1,0} {102,#DIV/0!,202,#DIV/0!} 这里只剩下进货价,在查询进价在在哪一列 =MATCH(I2,{102,#DIV/0!,202,#DIV/0!},0) 这样就能知道进价在哪一列,那么
-
0
-
2
-
0
-
0
-
0
-
1老师您好,请问怎样用一个公式解决,两行数值对比大小,判断第二行数值里是否存在大于第一行相对位置的数值,如果第二行里有任意一个大于第一行相对的数值,结果为不合格,都不大于结果合格,谢谢。
-
0
-
0
-
1
-
0
-
0
-
0
-
0
-
1
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0
-
0问题:查询最接近目标时间的数据 不管迟早,找最接近的 解: 要找最接近的,就需要先找出全部时间跟目标时间的相差值,再取最小值 时间数据可以直接加减乘除运算 =A2:A31-D4 可以得到所有的相差时间,但是有正负,在用abs算绝对值,然后在min取最小时间 =MIN(ABS(A2:A31-D4)) 0.083336315 这个结果就是最小的时间差值(单位是天,这里可以不在意) 然后在判断每个的时间差是不是等于这个最小值 =ABS($A$2:$A$33-D4)=MIN(ABS($A$2:$A$33-D4)) {FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;........} 结果中的
-
0
-
6如何利用条件格式实现某一个区域内Excel单元格里含有特定重复文本时整个标黄,若查询的重复文本为:蓝、红,A1单元格里为“浅蓝,深蓝,黑”就会变黄,单位格里为“浅红,黄,深红”也会标黄,请大神帮忙解决下
-
0
-
0
-
4问题:多个数据合并成数据*数量格式 1+1+2+3+3+3,写成1*2+2+3*2 解: 可以用countif统计每个数据的个数 =COUNTIF(B1:J1,B1:J1) {4,3,1,3,4,1,3,4,4} 算出个数后,在&本身 =B1:J1&"*"&COUNTIF(B1:J1,B1:J1) {"8*4","9*3","13*1","9*3","8*4","11*1","9*3","8*4","8*4"} 但是有部分重复字符,就在去重再合并 =TEXTJOIN("+",1,UNIQUE(B1:J1&"*"&COUNTIF(B1:J1,B1:J1),1)) 8*4+9*3+13*1+11*1 部分版本要按shift+Ctrl+回车 如果1个数
-
0
-
0问题:找最后有效的合并单元格 找第3行最后的非空单元格对应的1 2行内容 解: 这是两个单独的需求,取最后的年,跟取最后的月 先取月,这是一个比较标准的lookup取最后的套路 =0/(B3:P3<>"") {0,0,0,0,0,0,0,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!,#DIV/0!} 先将3行的空单元格做成错误,非空的做成数字 再lookup取最后(标准用法,以前解释过) =LOOKUP(1,0/(B3:P3<>""),B2:P2) 2月 取年,有合并单元格,比较麻烦 =IF((B3:P3<>"")*(B1:P1<>""),B
-
0
-
0
-
0
-
0
-
0问题:3组数字,找出同时重复的数字 解: 要3行同时重复,那我们就用A组每位数字,在BC查找,都能找到的话,就是同时重复 =MID(B1,COLUMN(A:J),1) 1 0 0 6 5 3 9 4 再把每位数字,都在BC里查找 =FIND(MID(B1,COLUMN(A:J),1),B2:B3) 1 5 5 #VALUE! #VALUE! 3 2 #VALUE! 1 1 1 #VALUE! #VALUE! #VALUE! #VALUE! 7 3 2 1 1 有数字的,就表示A数字该位置上的数字,是存在的 我们需要同一列,上下两个都是数字的话,A列该位置的数字,就同时重复 那就iferror错误处理后MMULT求和 =MMULT({1,1},IFERROR(FIND(MID(B1,COLUMN(A:J),1),B2:B3)^0,
-
0问题:按行列方向多条件合并同类项 讲C列数据,按AB列的分类根据汇总表的行列标题,合并内容 解: 这也是很标准的数组公式 思路是,判断姓名列=目标姓名,而且,科目列=目标科目,就取对应C列成绩,否则取空 =($A$2:$A$40=$G2)*($B$2:$B$40=H$1) {1;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0} 为1的就是对应的符合两个条件的单元格 我就取C列 =IF(($A$2:$A$40=$G2)*($B$2:$B$40=H$1),$C$2:$C$40,"") {143;"";127;"";"";"";"";"";&