【问题标题】:4 variables index function, with great than and less than for 2 variables4个变量索引函数,大于和小于2个变量
【发布时间】:2016-06-08 08:34:14
【问题描述】:

我正在尝试使用索引匹配函数来确定下表的适当比率。

因此,例如,针对拥有财产的人的消费贷款,汽车的车龄为 2 年或以下,总贷款与价值比率低于 140%,应返回 5.15% 的价值

【问题讨论】:

  • 你能告诉我们你的尝试吗?
  • 在您的示例中,假设 110 也是总贷款与价值比率,为什么 4.90 不是有效答案?你如何区分最后两列?他们都有相同的标题。当比例正好是 140% 时,你使用哪一列
  • Sheesk 在这里我还以为活着的状态是生是死! 8)

标签: excel indexing match


【解决方案1】:

我相信这就是你想要的......

我会使用一系列嵌套的 if 函数来评估我希望值来自 LTV 的哪一列。

"这就是 AND( ) 部分所做的。如果该值大于 110% 且小于 140%,让我们在 110% 列上进行索引匹配,否则在 140% 列上进行。 "

您可以将其扩展到更多列,在 false 条件下具有更多 IF。

然后它是一个简单的带有连接的INDEX匹配。它搜索三个参数都在一个串联范围内串联。

希望对您有所帮助。

【讨论】:

  • 我编辑了您的答案以将屏幕截图移动到 imgur 上的 stackexchanges 帐户。这样,在接下来的几个月中,图像不会改变。它还使图像可点击以以更大的格式查看,从而使其更清晰。
  • 谢谢,新来的 ;)
  • 当你低于一定的代表次数时,我相信你实际上不能插入图像,但在某些时候你可以,然后生活变得更容易。
  • 我对您的回答唯一感到奇怪的是,您只提供了 2 列供搜索,而不是像 OP 的示例数据中那样提供 3 列。如果需要,您确实谈到了扩展数据。我认为尽管您至少会显示与 OP 的问题相等的数量。不过你的选择。
  • @user2972169 - 另一个建议。最好以文本形式在答案中包含公式或代码,以便 OP 或其他用户轻松复制。
【解决方案2】:

概念证明

为了实现上述目的,我必须对您的标题进行小幅编辑,以便能够区分两个 140% 的列。

此答案中使用的函数是:

我将公式的主要部分放在 IFERROR 函数中,作为处理可能超出范围或未提供所有输入的事情的一种方式。然后我假设您搜索的基础将在一系列单元格中提供。在我的示例中,我假设将在 H3 到 K3 范围内提出问题,并将结果放在 L3 中。

主要概念以 INDEX 函数为中心。我将索引范围指定为表格的高度和百分比的宽度。或者在这个例子中是 D2:F9。

=IFERROR(INDEX($D$2:$F$9,row number, column number),"Not Found")

这是最简单的部分。更具挑战性的部分是确定要查看的行号和列号。让我们从列号开始,因为它是两者中稍微容易一些的。我假设要查找的比率,或者更确切地说,将提供要查找的列的标题。我基本上用这个方程来确定列号:

=MATCH(K3,$D$1:$F$1,0)

通俗的讲就是D和F之间的哪一列,将D列计为1,其值等于K3的内容。所以现在有一个公式来确定列,我们可以把它放到我们原来的公式中,最后得到:

=IFERROR(INDEX($D$2:$F$9,row number,MATCH(K3,$D$1:$F$1,0)),"Not Found")

现在我们只需要确定行号。这是最复杂的操作。我们将基本上进行一堆逻辑检查并获取与所有逻辑检查匹配的第一行。这里的前提是逻辑检查是 TRUE 或 FALSE。在 excel 中,0 为假,每隔一个整数为真。因此,如果我们将一系列逻辑检查相乘,只有在所有情况下都为真的那个才会等于 1。第一个逻辑检查是贷款类型。其次是生活状况,然后是车龄。

=(H3=$A$2:$A$9)*(I3=$B$2:$B$9)*(J3=C2:C9)

现在,如果您将其放入数组公式中,您将得到一系列真假或 1/0。我们将在具有特殊功能的 AGGREGATE 函数中使用它。 AGGREGATE 函数将对其某些函数执行类似数组的计算。我们将使用函数 15 来执行此操作。我们还将告诉聚合函数忽略所有错误,这就是 6 所做的。所以最后我们要做的是将每个行号除以逻辑检查。如果逻辑检查为 false 或 0,则会生成 Div/0!聚合将选择忽略的错误。最后,我们得到一个与我们的逻辑检查相匹配的行列表。然后我们用 ,1 告诉聚合我们想要第一个结果。所以我们最终得到一个看起来像这样的公式:

=AGGREGATE(15,6,ROW($A$2:$A$9)/((H3=$A$2:$A$9)*(I3=$B$2:$B$9)*(J3=C2:C9)),1)

虽然这确实为我们提供了我们想要的行号,但我们需要对其进行调整以使其成为索引号。为此,您需要减去标题行数。在这种情况下 1. 所以索引行号由这个公式给出:

=AGGREGATE(15,6,ROW($A$2:$A$9)/((H3=$A$2:$A$9)*(I3=$B$2:$B$9)*(J3=C2:C9)),1)-1

当我们将其代入前面的方程式中的行号时,我们会得到最终方程式:

=IFERROR(INDEX($D$2:$F$9,AGGREGATE(15,6,ROW($A$2:$A$9)/((H3=$A$2:$A$9)*(I3=$B$2:$B$9)*(J3=C2:C9)),1)-1,MATCH(K3,$D$1:$F$1,0)),"Not Found")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多