excel根据条件返回对应的值比如? 30

x的属性是(a.b.c.d)y物品的属性是(b.c.d.e)z物品的属性是(a.c.d.f)我现在有条件a.b.c.d.e需要返回x和y如何列公式假如我有红花,三七,丹参... x的属性是(a.b.c.d)y物品的属性是(b.c.d.e)z物品的属性是(a.c.d.f)我现在有条件a. b. c. d. e需要返回x和y如何列公式
假如我有红花,三七,丹参,麝香,以及黄芪,那么我可以合成的材料就有金创膏和活血膏
展开
 我来答
迷途羔羊1991

2021-06-07 · TA获得超过4.6万个赞
知道大有可为答主
回答量:3.3万
采纳率:81%
帮助的人:1237万
展开全部

在Excel中,有多个用于查询的函数,可以非常方便地查询需要的数据,但是却没有一个类似countifs多条件计数函数、sumifs多条件求和函数一样的,专门用于多条件查询的函数。但是,我们却可以利用lookup函数来实现多条件查询的功能。

lookup函数有两种使用方式,一种是从单行或单列中查找数据,这种方式叫做向量形式,另一种是从多行多列组成的一个区域中查找数据,叫做数组形式。在实际使用过程中一般都不使用数组形式,而多用 VLOOKUP 或 HLOOKUP来实现区域查找。提供数组形式是为了与其他电子表格程序兼容,这种形式的功能有限。故这种方式本节不予分析,主要来和大家探讨一下从单行或单列中查找数据的这种形式。

先来看看基础语法:

lookup(查找值,查找范围区域,返回值区域)

查找范围区域和返回值区域都必须是单行或单列的区域,且大小必须相同。

如果 LOOKUP 函数找不到“查找值”,则该函数会在查找范围区域中小于或等于“查找值”的最大值进行匹配。如果“查找值” 小于 查找范围区域中的最小值,则 LOOKUP 会返回 #N/A 错误值。

来看看一则基础实例:

以下是商店销售目标达成情况表,需要查找商店3的达成率。

在B13单元格中输入公式:

=LOOKUP(B12,B2:B10,E2:E10)

来看看公式实现的过程,查找的值是B12单元格(商店3),查找的范围是B2:B10(商店名称列),返回值区域是E2:E10(达成率列)。首先,它先再商店名称列中查找商店3,当它找到之后,它就会记住其所在行的位置,然后再去找到达成率列中对应行位置的值(也就是83%)

理解了lookup基础用法,我们再来看如何实现多条件查询。

语法:lookup(1,1/((条件区域1=条件1)*(条件区域2=条件2)),返回值区域)

查找的值:1

查找的范围:1/((条件区域1=条件1)*(条件区域2=条件2))

返回值区域:设定返回值列,

条件可以继续增加,但是一组条件用小括号括起来,各条件之间用“*”连接起来,且条件整体也需要用括号括起来。

下图是商店品类销售表,查找商店2休闲裤的销售金额

在B12单元格中输入公式:

=LOOKUP(1,1/((A2:A7=B10)*(B2:B7=B11)),C2:C7)

以上就是多条件查询的方法。在实际工作中,总有人会有疑问。为什么查找值要写成1,查找范围要写成“1/((条件区域1=条件1)*(条件区域2=条件2))”这种形式?

下面我就用上面的实例来解释一下:

条件1:A2:A7=B10 就是在商品名称列查找商店3。条件2:B2:B7=B11 就是在品类列中查找休闲裤。在公式的计算过程中,如果它找到了对应的值就用1表示,如果不是就用0表示,两组条件就得出了两组数,这是第一步。第二步两组数相乘就得到了新的一组数。第三步,1除以这组数,因为分母不能为0,1/0就会变成错误值,这样就剔除了不符合条件的值,保留符合条件的值.。第四步,再在这组数中查找1, 通过找到1所在的位置,找到对应的返回值区域的值。

通过了解公式的计算过程,你就明白了为什么查找值要写成1,查找范围要写成“1/((条件区域1=条件1)*(条件区域2=条件2))”这种形式啦

漂流牛
2021-06-07 · 逍遥漂流,自在四方。
漂流牛
采纳数:2055 获赞数:9413

向TA提问 私信TA
展开全部

题目表述不够清晰,我就给你估摸这弄了,如果不符合意思再说。

更多追问追答
追问

大佬大佬,我需要满足这样的条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ssfx1982
2021-06-08 · TA获得超过2241个赞
知道小有建树答主
回答量:945
采纳率:58%
帮助的人:200万
展开全部
  1. 把J列当做辅助列,在J3单元格中=IF(SUM((IFERROR(MATCH($A$22:$D$30,$D3:$I3,),0)>0)*(1>0))=4,C3,""),ctrl+shift+enter 数组公式结束输入,公式下拉,J列非空白的项就是可合的药谱名

  2. F22=IFERROR(INDEX($J$1:$J$20,SMALL(IF(LEN($J$1:$J$20)>0,ROW($1:$20),9^99),COLUMN(F1)-5),),"") ,ctrl+shift+enter 数组公式结束输入,公式右拉

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7e4b948
2021-06-08 · 超过18用户采纳过TA的回答
知道答主
回答量:139
采纳率:26%
帮助的人:16.4万
展开全部
先肯定一下这个是可以做出来的,但是很麻烦。然后是关于这个数据的问题。以我的理解这个本来应该是用来分析的吧,做成这样一点也不规范,建议重新学。
公式我做了个半成品你先用着吧,估计也用不久。
F22=TEXTJOIN("/",TRUE,IFERROR(INDEX(C3:C19,IF(IFERROR(FIND(D3:D19,TEXTJOIN("/",TRUE,A22:D29))*FIND(E3:E19,TEXTJOIN("/",TRUE,A22:D29))*FIND(F3:F19,TEXTJOIN("/",TRUE,A22:D29))*FIND(G3:G19,TEXTJOIN("/",TRUE,A22:D29))*1,1)=1,"",ROW(A1:A17))),""))
有问题就追问。里面有些参数需要你直接调试因为我不知道你这个表打算做多大。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ynzsvt
2021-06-08 · TA获得超过6664个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2679万
展开全部
用代码的自定义函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式