Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9970|回复: 28

[已解决]查找符合条件的在相应的位置返回值

[复制链接]
发表于 2014-6-21 22:15 | 显示全部楼层 |阅读模式
本帖最后由 superle! 于 2014-6-21 22:19 编辑

黄色背景区域是要函数填充的区域
看EC19的1是怎么来的,看DZ19的值,跟DZ2的值相同,这是第一步,也是必须符合的一步。不然则为空值。符合了DZ2跟DZ19的值相同之后,看往左看,找到DL2和DL19的值是相同的,和DK2和DK19的值也是相同的,这是二步,也是必须符合的邻近各相同,如果DJ2和DJ19的值也是相同的,这也只能是算1次的符合,不然返回则为空值,这已经符合了1次的返回值。返回的值就是DZ19的右边的值,EA19的值为1.在EC19里返回1就可以了。
再看EZ20的3值是怎么来的,看DA2和DZ20的值是相同的,符合了第一步,再往左找,看到DW2和DW20相同,DV2和DV20相同,DU2和DU20相同,两个邻近相同,符合了1次,再往左找,看到DP2和DP20相同,和邻近的DO2和DO20相同,符合了2次,再往左找,如果还有邻近的至少两个相同,显然DL列的左右边没有邻近相同的,所以不符合,在ED20里返回3值。
DZ2和DZ21不相同,直接返回空值。
看再DZ24和DZ2是相同的,但是DZ相邻的是相同的,所以也不符合,直接返回空值。

最佳答案
2014-6-22 02:04
superle! 发表于 2014-6-21 23:59
因为DD138的值只相同了一个,没有相邻的相同值,所以不符合条件了,就只能到这个为止了。左边的任何符合都 ...
  1. =IF(($DZ19=$DZ$2)*SUM((FREQUENCY(COLUMN($A:$AK),IF($CP19:$DZ19<>$CP$2:$DZ$2,COLUMN($A:$AK),))>2)*(ROW($1:$38)<38)*IFERROR(ROW($1:$38)>MATCH(1,0/($CO19:$DX19<>$CO$2:$DX$2)/($CP19:$DY19=$CP$2:$DY$2)/($CQ19:$DZ19<>$CQ$2:$DZ$2)),))=COLUMN(A1),$EA19,"")
复制代码
好复杂,看得头都晕了
(, 下载次数: 21)

查找符合条件的在相应的位置返回值.rar

106.63 KB, 下载次数: 32

发表于 2014-6-21 22:36 | 显示全部楼层
回复

使用道具 举报

发表于 2014-6-21 22:46 | 显示全部楼层
本帖最后由 FnG 于 2014-6-21 23:44 编辑

EC19数组公式右拉下拉:
  1. =IF(($DZ19=$DZ$2)*SUM(((FREQUENCY(COLUMN($A:$AK),IF($CP19:$DZ19<>$CP$2:$DZ$2,COLUMN($A:$AK),))-1)>1)*(ROW($1:$38)<38))=COLUMN(A1),$EA19,"")
复制代码
回复

使用道具 举报

发表于 2014-6-21 23:06 | 显示全部楼层
本帖最后由 26759761@qq.com 于 2014-6-21 23:31 编辑

你看下你第28行,那个9应该是放在第二次出现那一列吧?
不知道是不是误解你的意思,你看下效果对不对吧,
如果不对,你描述的再清楚点,好几个地方的行列号都写错了...完全靠猜的...
  1. =IF(($DZ19=$DZ$2)*($DY19<>$DY$2)*(COUNT(0/(FREQUENCY(IF($CP19:$DX19=$CP$2:$DX$2,COLUMN($CP:$DX)),IF($CP19:$DX19<>$CP$2:$DX$2,COLUMN($CP:$DX)))>1))=COLUMN(A1)),$EA19,"")
复制代码
优化了下.
  1. =IF(($DZ19=$DZ$2)*($DY19<>$DY$2)*(COUNT(0/(FREQUENCY(COLUMN($CP:$DX),IF($CP19:$DX19<>$CP$2:$DX$2,COLUMN($CP:$DX)))>2))=COLUMN(A1)),$EA19,"")
复制代码
999.jpg

点评

FnG
($DY19<>$DY$2)这种写法行不通的,他不仅把连着DZ的去掉了,也把不连着DZ正常要计算的也去掉了。  发表于 2014-6-21 23:46
回复

使用道具 举报

发表于 2014-6-21 23:33 | 显示全部楼层
FnG 发表于 2014-6-21 22:46
数组公式右拉下拉:有个问题是像24行那样的连着DZ的最后五格算了一次,不知这样可不可以

以前写 FREQUENCY  每次都是很长.看到你的,才知道还可以这么写,学习了

点评

FnG
有位高手说过,frequency函数写起来是要长的,跟其它函数比没优势。一起学习  发表于 2014-6-21 23:52
回复

使用道具 举报

 楼主| 发表于 2014-6-21 23:41 | 显示全部楼层
本帖最后由 superle! 于 2014-6-21 23:46 编辑
26759761@qq.com 发表于 2014-6-21 23:06
你看下你第28行,那个9应该是放在第二次出现那一列吧?
不知道是不是误解你的意思,你看下效果对不对吧,
如果 ...

138行的返回值是错误的,DD18没有相邻的两个相同值。所以正确的返回空值


还有一个现象
QQ图片20140621234421  这个图片 这个情况也是要返回12的值的。

QQ截图20140621234012.png
QQ图片20140621234421.jpg
回复

使用道具 举报

 楼主| 发表于 2014-6-21 23:48 | 显示全部楼层
26759761@qq.com 发表于 2014-6-21 23:06
你看下你第28行,那个9应该是放在第二次出现那一列吧?
不知道是不是误解你的意思,你看下效果对不对吧,
如果 ...

不算2次,算1次
231355m301018zp4dtt4t9.jpg
回复

使用道具 举报

发表于 2014-6-21 23:48 | 显示全部楼层
3楼函数已更改,补充附件,你试下有没问题
查找符合条件的在相应的位置返回值.rar (112.93 KB, 下载次数: 20)
回复

使用道具 举报

 楼主| 发表于 2014-6-21 23:52 | 显示全部楼层
FnG 发表于 2014-6-21 23:48
3楼函数已更改,补充附件,你试下有没问题

138行的返回值是错误的,DD18没有相邻的两个相同值。所以正确的返回空值
回复

使用道具 举报

发表于 2014-6-21 23:55 | 显示全部楼层
superle! 发表于 2014-6-21 23:52
138行的返回值是错误的,DD18没有相邻的两个相同值。所以正确的返回空值

DD18?
CX138和CY138连在一起算一个呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-28 06:37 , Processed in 0.286512 second(s), 18 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表