Excel精英培训网

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

[已解决]求助:如何把最大连出空值所对应的数字记录下来?

[复制链接]
发表于 2013-7-11 09:19 | 显示全部楼层 |阅读模式
请教各位老师,谢谢!
最佳答案
2013-7-11 11:09
堆一个
  1. =IF(OR((MOD(MAX(FREQUENCY($AG2:$CK2,IF(ISNUMBER($AG5:$CK5),$AG5:$CK5,1))/1%+ROW(1:58)),100)-ROW(A1:INDEX(A:A,MAX(FREQUENCY($AG2:$CK2,IF(ISNUMBER($AG5:$CK5),$AG5:$CK5,1)))+1))+(MOD(MAX(FREQUENCY($AG2:$CK2,IF(ISNUMBER($AG5:$CK5),$AG5:$CK5,1))/1%+ROW(1:58)),100)<58))=AG2),AG2,"")
复制代码
数组公式
AG3输入
详见附件

Book1.rar

9.14 KB, 下载次数: 17

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-7-11 09:33 | 显示全部楼层
回复

使用道具 举报

发表于 2013-7-11 09:47 | 显示全部楼层
比如选择AG5,按ctrl+右,应跳到AS5,可却到了CK5
奇怪,这是为什么呢?
回复

使用道具 举报

 楼主| 发表于 2013-7-11 09:51 | 显示全部楼层
w2001pf 发表于 2013-7-11 09:33
不清楚要求。

如果(AG5CK5)的最大连出空值是在(AG5AS5)这一段,那么就把(AG5AS5)所对应的(AG2AS2)的数字1到13分别记录在(AG3AS3)。

回复

使用道具 举报

 楼主| 发表于 2013-7-11 10:02 | 显示全部楼层
爱疯 发表于 2013-7-11 09:47
比如选择AG5,按ctrl+右,应跳到AS5,可却到了CK5
奇怪,这是为什么呢?

表格应该没问题吧?
回复

使用道具 举报

发表于 2013-7-11 10:33 | 显示全部楼层
爱疯 发表于 2013-7-11 09:47
比如选择AG5,按ctrl+右,应跳到AS5,可却到了CK5
奇怪,这是为什么呢?

=AG5:CL5=
{"","","","","","","","","","","","",13,"","","","",18,"","","","",23,"","",26,"","",29,30,"","","",34,"","","","","","","","","","",45,46,"","",49,"","","","",54,"",56,57,0}

评分

参与人数 1 +6 金币 +6 收起 理由
爱疯 + 6 + 6 学习一个

查看全部评分

回复

使用道具 举报

发表于 2013-7-11 10:50 | 显示全部楼层
爱疯 发表于 2013-7-11 09:47
比如选择AG5,按ctrl+右,应跳到AS5,可却到了CK5
奇怪,这是为什么呢?

假空单元格吧!

评分

参与人数 1 +3 金币 +3 收起 理由
爱疯 + 3 + 3 的确是,学习了

查看全部评分

回复

使用道具 举报

发表于 2013-7-11 10:53 | 显示全部楼层

  1. Sub test()
  2.     Dim A, j
  3.     Dim m   '上次的空格数
  4.     Dim n   '最多空格的空格数
  5.     Dim x1  '上次起点
  6.     Dim y1  '上次终点
  7.     Dim x2  '最多空格起点
  8.     Dim y2  '最多空格终点


  9.     A = [ag2:ck5]
  10.     x1 = 1

  11.     For j = 1 To UBound(A, 2)
  12.         y1 = j
  13.         If A(4, j) = "" Then
  14.             m = m + 1    '累计空格数
  15.         Else
  16.             If m > n Then
  17.                 x2 = x1: y2 = j: n = m    '更新最多空格区
  18.             End If
  19.             m = 0: x1 = j
  20.         End If
  21.     Next j

  22.     Rows(3).ClearContents    '32 = Range("ag2").Column - 1
  23.     Range(Cells(3, x2 + 32), Cells(3, y2 + 32)) = Range(Cells(2, x2 + 32), Cells(2, y2 + 32)).Value
  24. End Sub
复制代码
Book1b.rar (9.61 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2013-7-11 11:09 | 显示全部楼层    本楼为最佳答案   
堆一个
  1. =IF(OR((MOD(MAX(FREQUENCY($AG2:$CK2,IF(ISNUMBER($AG5:$CK5),$AG5:$CK5,1))/1%+ROW(1:58)),100)-ROW(A1:INDEX(A:A,MAX(FREQUENCY($AG2:$CK2,IF(ISNUMBER($AG5:$CK5),$AG5:$CK5,1)))+1))+(MOD(MAX(FREQUENCY($AG2:$CK2,IF(ISNUMBER($AG5:$CK5),$AG5:$CK5,1))/1%+ROW(1:58)),100)<58))=AG2),AG2,"")
复制代码
数组公式
AG3输入
详见附件

Book1.zip

9.7 KB, 下载次数: 11

回复

使用道具 举报

 楼主| 发表于 2013-7-11 11:18 | 显示全部楼层
谢谢各位老师的热心帮忙!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 03:01 , Processed in 0.533946 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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