ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3269|回复: 28

[求助] 谁能做这个高难度函数公式?请挑战一下吧!到目前还没得到满意的答案。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-8-22 11:38 | 显示全部楼层 |阅读模式
本帖最后由 lsfeng 于 2013-8-22 22:26 编辑

1)D列是C列-A列=2个日期的差
2)E列是想在D列找出10个最大的数字
  我想能否先在G列选择月份(比如选择5月),G列找出该月(5月D列)最大的10个数字并显示在E列中
  每次点击G列下拉箭头时,E列出现D列中最大的10个数字。如果不点击下拉
  如果找整列(D列)的最大10个数字=large(D:D),就很容易实现,难点是先选择月份,那么large函数的取值范围是变化的,不知如何用一个通用的公式来实现。取值范围随G列月份的变化而变化。

3)如果G列不选择,则E列是显示全年TOP10 ,G列选择满足条件的几个月,则E列显示对应这几个月的TOP10

谢谢!

先选择G列月份,D列就是对应改月份的数字。在E列中显示D列对应该月份的最大10个数字。

目的:例如要知道5月份倒货最慢的10票货,选择G列5月,E列出现5月份倒货最慢的10票货;在G列选择6月,那么E列显示6月倒货最慢的10票货。以此类推


每月TOP10.rar

52.86 KB, 下载次数: 62

TA的精华主题

TA的得分主题

发表于 2013-8-22 12:01 | 显示全部楼层
看不懂你的需求。
不知道要干什么 。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-8-22 12:19 | 显示全部楼层
本帖最后由 lsfeng 于 2013-8-22 12:26 编辑
delete_007 发表于 2013-8-22 12:01
看不懂你的需求。
不知道要干什么 。


1)D列是C列-A列=2个日期的差
2)E列是想在D列找出10个最大的数字
  我想能否先在G列选择月份(比如选择5月),G列找出该月(5月D列)最大的10个数字并显示在E列中
  每次点击G列下拉箭头时,E列出现D列中最大的10个数字。
  如果找整列(D列)的最大10个数字=large(D:D),就很容易实现,难点是先选择月份,那么large函数的取值范围是变化的,不知如何用一个通用的公式来实现。取值范围随G列月份的变化而变化。谢谢!

先选择G列月份,D列就是对应改月份的数字。在E列中显示D列对应该月份的最大10个数字。
目的:例如要知道5月份倒货最慢的10票货,选择G列5月,E列出现5月份倒货最慢的10票货;在G列选择6月,那么E列显示6月倒货最慢的10票货。以此类推


不知是否表达清楚了

TA的精华主题

TA的得分主题

发表于 2013-8-22 12:27 | 显示全部楼层
数组公式的应用,不知道是不是你想要的结果。

每月TOP10.zip

105.52 KB, 下载次数: 32

TA的精华主题

TA的得分主题

发表于 2013-8-22 12:32 | 显示全部楼层
也就是说,输入年、月、后返回属于这个年、月的LeadTime值,这个值按降序排列并可以进行选择,比如选择前5个或者前10个?
这个数据量公式慢,可以考虑sql配合点vba

TA的精华主题

TA的得分主题

发表于 2013-8-22 12:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
e2=IF(SUM(N((TEXT(A$2:A$1780,"emm")=TEXT(F2*100+G2,0))*D$2:D$1780>=D2))>E$1,"",D2)
数组公式

TA的精华主题

TA的得分主题

发表于 2013-8-22 12:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如果没理解错的话,公式真不难,三两下就写出来了。
也就是判断当前行的年月在之前(包含当前行)一共出了几个,超过10个不显示,10个以内这个值也是LARGE的第二参数,至于区域,如果连续的,就用OFFSET+MATCH+条件计数定位,不连续就用全区域条件最大值就行了。
不过看了标题,就不帖公式出来了,免得别人没的挑战。

TA的精华主题

TA的得分主题

发表于 2013-8-22 12:53 | 显示全部楼层
E2=IF(SUMPRODUCT((YEAR(A$2:A$1780)=F2)*(MONTH(A$2:A$1780)=G2)*(D$2:D$1780>=D2))>E$1,"",D2)

TA的精华主题

TA的得分主题

发表于 2013-8-22 13:04 | 显示全部楼层
本帖最后由 准提部林 于 2013-8-22 13:11 编辑

<求各月LeadTime的TOP前幾大>
F2.一般公式:取出A列〔YYYYMM〕

  1. =IF(A2="","",--TEXT(A2,"yyyymm"))
复制代码
G2.一般公式:取得〔当月〕第1筆〔行号〕及〔筆數〕
  1. =IF(F2="","",IF(F2=F1,G1,(MATCH(F2,F:F,)-1)*10^5+COUNTIF(F:F,F2)))
复制代码
E2.一般公式:取得各月前几大
  1. =IF(A2="","",IF(D2>=LARGE(OFFSET(D$1,INT(G2/10^5),,MOD(G2,10^5)),MIN(MOD(G2,10^5),$E$1)),D2,""))
复制代码
 
幾千筆至一萬筆資料,运算速度應還算快(A列日期必須排序):
eh20130822-01.rar (55.05 KB, 下载次数: 29)
 


TA的精华主题

TA的得分主题

发表于 2013-8-22 13:39 | 显示全部楼层
增加了一列运单号,透视表做的
不知道行不行

工作簿1.zip

72.67 KB, 下载次数: 19

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-11 14:32 , Processed in 0.029236 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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