【问题标题】:Excel Index based on a criteria基于标准的 Excel 索引
【发布时间】:2019-07-29 08:28:56
【问题描述】:

我有以下数据,我想根据范围在另一个表中建立索引

我想要实现的是,例如,如果三星的销售额为 2500,则折扣为 2%,低于 3000 和高于 1000

我知道它可以通过索引来完成,与多个数组匹配,然后指定区域,或者我可以使用 if 公式,但我正在寻找替代解决方案

我一直在想这样的事情,但每次我尝试它似乎都失败了

{=index(B:B,match(E2&f2,concatnate(E2,A1:A21),1)}

因为它将与column ASamsung 下的内容匹配

基本上我想要做的是如果column E = Samsung找到三星然后仅将销售与三星下的数字匹配(当column A中的单元格不是数字时停止匹配)

【问题讨论】:

    标签: excel excel-formula formula array-formulas


    【解决方案1】:

    所以我认为您正在寻找的可能是:

    G2中的公式:

    =INDEX(B:B,MATCH(F2,INDEX(A:A,MATCH(E2,A:A,0)):INDEX(A:A,MATCH(E2,A:A,0)+6),1)+MATCH(E2,A:A,0)-1)
    

    这会带走数组输入的公式,但是如果您正在寻找另一种方法,我会说可能会考虑使用 Brand/Sale/Discount 之类的列作为查找表重新排列您的数据。使用起来更容易。

    如果您的范围可以在品牌之间没有相同数量的销售可能性的情况下增加,我认为您仍然需要一个数组公式,可能是这样的:

    =INDEX(B:B,MATCH(F2,INDEX(A:A,MATCH(E2,A:A,0)):INDEX(A:A,MATCH(FALSE,ISNUMBER(INDEX(A:A,MATCH(E2,A:A,0)+1):INDEX(A:A,COUNTA(A:A)+1)),0)+MATCH(E2,A:A,0)),1)+MATCH(E2,A:A,)-1)
    

    通过Ctrl+Shift+Enter

    进入

    【讨论】:

    • 这很可爱!谢谢,我知道如果我重新排列数据会容易得多,但我不相信这对我有多大好处,因为我知道如何解决这些问题。
    • 但我相信如果我们添加更多参数(A 列中的销售价值),这个公式将停止工作
    • @ThaerJ,是的,它会停止工作,从你的问题中不清楚这是否可能。无论哪种方式,我都用数组公式更新了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多