ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] [公式题目]产品名称下面插个空

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-6-21 14:39 | 显示全部楼层
  1. =CHAR(SUM(--TEXT(ROW()-1-SUBTOTAL(9,OFFSET(B$2,,,ROW($1:$8))),"9;8;73"))+1)
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-6-21 21:55 | 显示全部楼层
本帖最后由 5blessyou 于 2012-6-22 09:37 编辑

这个帖子太火爆了,继续上答案
69字符
  1. =INDEX(A:A,SMALL(9^((COLUMN(A:AD)-B2:B9)^0.2)+ROW(2:9),ROW()-1)&0)&""
复制代码

写成1:1形式还可以减少一个,68字符
  1. =INDEX(A:A,SMALL(9^((COLUMN(1:1)-B2:B9)^0.2)+ROW(2:9),ROW()-1)&0)&""
复制代码

话说没有最短只有更短,67
  1. =INDEX(A:A,SMALL(9^((COLUMN(1:1)-B2:B9)^4%)+ROW(2:9),ROW()-1)&0)&""
复制代码
66字符
  1. =INDEX(A:A,SMALL(9^SIGN(COLUMN(1:1)-B2:B9)+ROW(2:9),ROW()-1)&0)&""
复制代码
73字符的TEXT也上一个虽然没有70内,也是一个不错的思路
  1. =INDEX(A:A,SMALL(TEXT(COLUMN(1:1)-B2:B9,"9;1%;1")+ROW(2:9),ROW()-1)&0)&""
复制代码
重点还是&0的使用,当然0可以换成其他的数字
有些时候总觉得公式写的差不多了,其实不然,这不上面的TEXT还是可以减少两个字符的,计71字符
  1. =INDEX(A:A,SMALL(TEXT(COLUMN(1:1)-B2:B9,"9;1%;0")+ROW(2:9),ROW())&0)&""
复制代码
还是TEXT的灵活度高
PS:多单元

点评

强大。  发表于 2012-6-22 00:15

评分

6

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-6-21 22:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
穿越哥 发表于 2012-6-21 11:59
公式太长了,继续想想看。另外这个思路,版主有没优化思路。

之前发的投机式的公式,而且又长
现在给一个非投机式的 但依然很长,189个字符 2012-6-21_函数题.rar (5.93 KB, 下载次数: 3)
那个空格实在让人抓破头。
  1. =INDEX(A:A,LOOKUP(ROW()-2,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$9))),ROW($2:$9))+(LOOKUP(ROW()-2,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$9))))<>LOOKUP(ROW()-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$9)))))*10)&""
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-6-22 12:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =INDEX(A:A,SUM(--TEXT(SUMIF(A:A,"<"&A$2:A$9,B:B)-ROW(A1),"!0;1;9"))+1)&""
复制代码
等待高手的回答吧,有点取巧了,73个字节(含等号)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-22 19:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这是我的答案:
  1. =LOOKUP("I",LEFT(A$2:A2,ROW(A1)-SUMIF(OFFSET(B:B,,,ROW($1:2)),"<>")))
复制代码
感谢各位的大力支持!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-6-22 20:46 | 显示全部楼层
学习下5blessyou老师的精彩公式:
  1. =INDEX(A:A,SMALL(9^SIGN(COLUMN(1:1)-B2:B9)+ROW(2:9),ROW()-1)&0)&""
复制代码
第一步:<SIGN(COLUMN(1:1)-B2:B9)>,利用sign函数的特点,将小于B列的值化为-1,等于B列值时为0,否则为1,如下图 1.jpg
第二步:再利用9的N次方<9^SIGN(COLUMN(1:1)-B2:B9)>,将小于B列值转换成小数,等于B列值转换成1,不满足为9,再加上所要取的行号row(2:9),看效果: 2.jpg
因为我们学过数学的人都知道,一个小数后面不管你带N多个零时,它的值是不变的,当是一个整数值时后面带上一个零,那么它的值就是原来值的10倍了。
利用这一特点,先用small排序再带上0,这样一来当等于B列值的时候,取更大行号值。
这一方法确实很巧妙,学习了!向楼上各位老师致敬!

TA的精华主题

TA的得分主题

发表于 2012-6-22 22:55 | 显示全部楼层
  1. =INDEX(A:A,(SUM(SIGN(ROW(A1)-SUMIF(A:A,"<"&A2:A9,B:B)))+11)/2&0)
复制代码
可以到64了,
呵,没有想到sign的用法,这样也可以的

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-6-23 14:37 | 显示全部楼层
本帖最后由 11005046 于 2012-6-23 14:37 编辑

接着乱砍,64
  1. =CHAR(SUM(--TEXT(ROW(A1)-SUMIF(A:A,"<"&A$2:A$37,B:B),"2;1;90")))
复制代码

点评

50+指日可待  发表于 2012-6-23 18:31

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-6-23 20:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-6-26 16:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 5blessyou 于 2012-6-26 19:24 编辑

承蒙版主的信任,受版主之托,献丑一回,该拍砖的拍砖,该送鲜花的送鲜花
水平有限,大家就将就着看看吧,如果觉得对你有帮助,我也就能感到一丝欣慰
废话不多说,请看附件吧!
答案汇总
答案(按发帖先后楼层的作者顺序列出).png
思路解析1
思路解析1.png
思路解析2
思路解析2.png

20120615-wangg913(答案汇总).rar

78.7 KB, 下载次数: 65

评分

6

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-22 04:37 , Processed in 0.056126 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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