AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

    • 主页
    • 系统&网络
    • Ubuntu
    • Unix
    • DBA
    • Computer
    • Coding
    • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1491920
Accepted
bckelley
bckelley
Asked: 2019-10-14 11:44:05 +0800 CST2019-10-14 11:44:05 +0800 CST 2019-10-14 11:44:05 +0800 CST

VLOOKUP 多个值

  • 772

我希望有人可以帮助解决这个问题,我正在尝试在表格中找到工资并返回基于申请状态的百分比。

在此处输入图像描述

microsoft-excel microsoft-office-2010
  • 3 3 个回答
  • 407 Views

3 个回答

  • Voted
  1. Best Answer
    teylyn
    2019-10-14T13:52:31+08:002019-10-14T13:52:31+08:00

    这可以在没有 volatile 偏移量的情况下使用索引/匹配来完成。这里的挑战是您首先必须找到执行匹配的列。可以使用工资列上的索引和索引找到此列,使用完全匹配来查找第 2 行中的归档状态。请注意,行的第二个参数保持空白。然后索引将返回一个范围,而不是单个单元格。

    INDEX($C$3:$D$12,,MATCH($H$3,$C$2:$D$2,0))
    

    在该范围内,您希望将工资与近似查找匹配,使用 1 作为最后一个参数,这需要对数据进行排序。

    MATCH($H$2,INDEX($C$3:$D$12,,MATCH($H$3,$C$2:$D$2,0)),1)
    

    这将返回找到的或近似匹配的行号。在税率的另一个索引中使用该行号。这是完整的公式

    =INDEX($B$3:$B$12,MATCH($H$2,INDEX($C$3:$D$12,,MATCH($H$3,$C$2:$D$2,0)),1))
    

    在此处输入图像描述

    • 2
  2. kcrk
    2019-10-14T11:47:00+08:002019-10-14T11:47:00+08:00

    使用 Excel 中的普通LOOKUP函数。对表格进行排序很重要。有了该值,您就可以执行 VLOOKUP,就像在您的公式中一样。

    我会使用OFFSETandMATCH来根据状态移动查找范围。例如,您的公式可能如下所示:

    =LOOKUP(H1,OFFSET(C3:C9,0,MATCH(H2,C2:E2,0)-1),B3:B9)

    您可以在此处找到更多信息:https ://exceljet.net/formula/lookup-value-between-two-numbers

    • 0
  3. Jeorje
    2021-09-11T19:59:03+08:002021-09-11T19:59:03+08:00

    VLOOKUP()如果你不想离开,就没有必要离开。

    您遇到的问题不是由于VLOOKUP()能够进行所需的查找。问题是您进行了错误的查找。

    您的公式在 H2 中查找值,但在表 B2:E9 和 B11:E20 中查找。VLOOKUP()使用表中的第一列进行查找。好吧,您要查看的表中的第一列是 B 列,其中包含百分比。在这种情况下,百分比均 <1。因此,您在价值不大于 1 的列中寻找 540 美元……它必须达到最后一个值,找不到更高的值,并以找到的最高值为基础。然后它查看其他三列以获取适当的返回金额。

    好吧,你不能指望它会起作用......在此期间收入超过 37 美分的任何人都会看到最后一行被选中。

    你可以使用:

    =VLOOKUP(G2,INDEX(A1:D8,ROW(1:8),IFS(G3="Single",{2,1},G3="Married",{3,1},G3="HoH",{4,1},TRUE,"")),2,TRUE)
    

    你有四个参数VLOOKUP()。第一个很简单,就是当期的收入金额,G2。最后一个也很简单,它是 TRUE 值,因此查找不会寻找精确匹配。

    有趣的参数是第二个参数,即要使用的查找表。因为您将使用INDEX()选择要使用的列并重新排列它们,所以第三个参数也很简单,您使用的查找表的第二列是“2”。

    一个两列查找表???有四列?不是两个?是什么赋予了?

    INDEX()让您给它一个范围,然后从中选择一或多行和一或多列。事实上,这INDEX/MATCH就是全部内容,尽管在这种情况下通常会寻找单个值。因此,您将使用INDEX()从四列中仅选择两列,第一列将是查找列(这是如何VLOOKUP()工作的),因此第二列将是结果列,即税率。

    当您以这种方式选择列或行时,您必须使用另一个需要确定行(一个或全部,但直接指定)的表达式,因此您不能执行“将该值留空”或“使用零来获取所有行/列”技术。在这种情况下,您需要原始表中的所有行,其中 8 行,因此使用常用方法之一:

    1. ROW(1:8)
    2. SEQUENCE(8) (我相信 2019 年不可用)

    那么剩下的唯一魔法就是如何指定列。如果你有一个简单的情况,你可以只输入一个array constantlike ,但是你需要三个可能的数组常量之一:{2,39,23,24,25,2,2,8,1,33}

    1. {2,1} 如果单
    2. {3,1} 如果已婚
    3. {4,1} 如果 HoH

    这IFS()是任何简单的方法,因为很少。更多的?在某些时候,您更喜欢一个表和它自己的查找。必须经常更换吗?绝对更喜欢表格和公式中自己的查找。无论如何,这里很简单,所以我使用了一个IFS()非常简单的(但超过公式长度的一半!)。

    尽管如此,最后一件事可能看起来很奇怪......为什么所有这些数组常量都以 1 结尾?好吧,那是因为原始表(您在问题中显示的表)具有您需要在 ITS 第 1 列中查找的值,并且您必须将它们放在第 2 列中以用于实际查找表,该表INDEX()正在动态创建。所以他们都有税率列排在第二位,所以VLOOKUP()会起作用。

    INDEX()此方法旨在具有指导意义,因此您可以使用该重新排序技术获得更多里程。它也适用于其他事情: FILTER()作为一个大用途,但甚至VLOOKUP()可以像这样采用一个数组常量。在这种情况下,它可能用于结果列。通过在数组常量中指定多个而不是像此公式中的普通 2 那样指定一个,您可以一次性获得多个结果。想要查找一件事,一次,并从查找表的五个列中获取结果?使用数组常量而不是单个列号。不需要五个单独的查找。还有其他功能也可以使用它。

    显然,“在当天”,INDEX/MATCH接受答案中的简单是最快、最简单的方法。现在有人认为XLOOKUP()会是,也许那时就可以了。无论是当时还是现在,人们都不会喜欢上面的公式。

    我部分地以VLOOKUP()粉丝的身份回答(讨厌听到绝对错误的“它不会'向左看'”,例如:它在这个公式中这样做了三种方式!),但主要是为了展示一种可以做一些事情并强调它的一个重要方面INDEX()以及它在其他一些常用功能中可以很方便的事实。

    • 0

相关问题

  • 带有“和”运算符的 Excel 数据透视表

  • 如何对整列使用 Excel 的 LENGTH 函数?

  • Excel 数组(2 个变量)

  • 如何从 WSL 打开 office 文件

  • VBA根据文件名重命名工作表

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    Windows 10 服务称为 AarSvc_70f961。它是什么,我该如何禁用它?

    • 2 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Marko Smith

    ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1056)

    • 4 个回答
  • Marko Smith

    我如何知道 Windows 安装在哪个驱动器上?

    • 6 个回答
  • Martin Hope
    Albin 支持结束后如何激活 WindowsXP? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch Windows 10 删除大量小文件的速度非常慢。有什么办法可以加快速度吗? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Ctrl+C 和 Ctrl+V 是如何工作的? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve