求解,感谢!excel当某一单元格值等于另一列中的值时,显示同一行另一列的数据

如上图,E列的编号是唯一的,但B列的编号是有重复的:问题一:在F1设置公式,当E1=B列的某值,且同一行D列=“”鞋子“”,取C列同一行第一次出现的数值,且当E1的值在B... 如上图,E列的编号是唯一的,但B列的编号是有重复的:
问题一:在F1设置公式,当E1=B列的某值,且同一行D列=“”鞋子“”,取C列同一行第一次出现的数值,且当E1的值在B列中没有出现的话,显示空格。如F1设置公式后应该显示“”
问题二:在G1设置公式,当E1=B列的某值,且同一行D列=“”鞋子“”,取A列同一行第一次出现的日期,且当E1的值在B列中没有出现的话,显示空格。
展开
 我来答
沈一民
2014-10-27 · TA获得超过8001个赞
知道大有可为答主
回答量:8448
采纳率:85%
帮助的人:2513万
展开全部

F1=IF(ISERROR(INDEX($C$1:$C$7,SMALL(IF(($B$1:$B$7=E1)*($D$1:$D$7=$D$1),ROW($B$1:$B$7),100),1))),"",INDEX($C$1:$C$7,SMALL(IF(($B$1:$B$7=E1)*($D$1:$D$7=$D$1),ROW($B$1:$B$7),100),1)))

G1=IF(ISERROR(INDEX($A$1:$A$7,SMALL(IF(($B$1:$B$7=E1)*($D$1:$D$7=$D$1),ROW($B$1:$B$7),100),1))),"",INDEX($A$1:$A$7,SMALL(IF(($B$1:$B$7=E1)*($D$1:$D$7=$D$1),ROW($B$1:$B$7),100),1)))

两个都是数组公式

光标放在公式编辑栏同时按下CTRL+SHIFT+回车键,两公式下拉

追问
非常感谢!在这张工作表中,这个公式完全可以达到我的目的!
问题:1、公式中的ROW($B$1:$B$7),100),1)这一段是什么意思?100和1 分别代表什么意思?
追答
IF(($B$1:$B$7=E1)*($D$1:$D$7=$D$1),ROW($B$1:$B$7),100),1)这里把它命名为公式1吧
如果$B$1:$B$7中有等于E1的单元格,并且其对应的D列单元格=$D$1,则返回其所在的行号,就是ROW($B$1:$B$7),否则返回100,因为你的数据不多,所以100对你的实例的行号来说已经足够大了。一般的写法有2^16、4^8等也就是65536,在2003版里是最大的一个行号了。最终结果产生一个数组(7个行号),符合条件的行号加上内不符合条件的都是100,共7个。
SMALL(公式1,1)这里把它命名为公式2吧,意思是在公式1产生的数组里查找第一个最小值,即符合条件的最小行号,这里的1就是第一个的意思,如果是第K个,就把1改为K。
INDEX($C$1:$C$7,公式2)这里把它命名为公式3吧,意思是在C$1:$C$7中返回第几个值,这里当然是第(公式2)个单元格的值啦。如果公式2=100,则INDEX($C$1:$C$7,公式2)返回错误。为解决这个问题,引入了ISERROR函数,是用来判断公式3是否为错误的,与if结合,2007版以上整合为一个函数IFERROR,语法就是:如果计算结果为错,则单元格返回空,否则等于计算结果。
上述函数,你可以在网上查找,多用几次就能理解了。
niconico日
2014-10-27 · TA获得超过385个赞
知道小有建树答主
回答量:439
采纳率:37%
帮助的人:86.6万
展开全部
F1=TEXT(IFERROR(IF(VLOOKUP(E1,B:D,3,0)="鞋子",VLOOKUP(E1,IF({1,0},B:B,A:A),2,0)),""),"yyyy/mm/dd") 下拉

是鞋子,就返回日期,否则返回false,如果E列的数值不存在于B列,那就返回空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刚下了点小雨
2014-10-27 · TA获得超过335个赞
知道小有建树答主
回答量:194
采纳率:100%
帮助的人:153万
展开全部
估计要用VBA才行.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式