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 / 问题 / 1691191
Accepted
bat_cmd
bat_cmd
Asked: 2021-12-05 01:21:54 +0800 CST2021-12-05 01:21:54 +0800 CST 2021-12-05 01:21:54 +0800 CST

缩短Excel“IF”公式?

  • 772

这个公式确实有效,但它是巨大的:

=IF(X3=B2,K2,IF(X3=B3,K3,IF(X3=B4,K4,IF(X3=B5,K5,IF(X3=B6,K6,IF(X3=B7,K7,IF(X3=B8,K8,IF(X3=B9,K9,IF(X3=B10,K10,IF(X3=B11,K11,IF(X3=B12,K12,IF(X3=B13,K13,IF(X3=B14,K14,IF(X3=B15,K15,IF(X3=B16,K16,IF(X3=B17,K17,IF(X3=B18,K18,IF(X3=B19,K19,IF(X3=B20,K20,IF(X3=B21,K21))))))))))))))))))))

这是它正在做的事情:

If X3 is the same as B2, show the contents of cell K2.
If X3 is the same as B3, show the contents of cell K3.
If X3 is the same as B4, show the contents of cell K4.
...etc etc etc all the way to...
If X3 is the same as B21, show the contents of cell K21.

由于 B2:B21 只是一列单元格,而 K2:K21 也只是一列单元格,有什么办法可以缩短上面的公式,所以它不是很大吗?

我不知道如何将其变成 2 个 B 细胞和 K 细胞范围。

尝试这样的事情是行不通的: =IF(X3=B2:B21,K2:K21)

因为告诉 Excel 使用:就是告诉它把从 B2 到 B21 和 K2 到 K21 的所有东西加在一起。我想知道是否有其他分隔符(不是 a :)告诉 Excel 单独处理每个单元格而不是添加它们?

这不起作用: =IF(X3=B2-B21,K2-K21)

这导致:#VALUE!

问题是,无论 B 细胞是哪个数字,都必须与 K 细胞中的相应数字(水平)保持匹配。

提前感谢任何可能知道答案的人,如果 Excel 中存在该功能,我相信这真的很简单。

microsoft-excel worksheet-function
  • 3 3 个回答
  • 562 Views

3 个回答

  • Voted
  1. Best Answer
    FlexYourData
    2021-12-05T05:26:21+08:002021-12-05T05:26:21+08:00

    根据您的 Excel 版本,您可以使用XLOOKUP,VLOOKUP或INDEX/MATCH

    在此处输入图像描述

    =XLOOKUP($X$3,$B$2:$B$22,$K$2:$K$22,"")
    =VLOOKUP($X$3,$B$2:$K$22,10,FALSE)
    =INDEX($K$2:$K$22,MATCH($X$3,$B$2:$B$22))
    
    • 7
  2. Hannu
    2021-12-05T02:31:47+08:002021-12-05T02:31:47+08:00

    =VLOOKUP(X3;B2:K21;columns(B2:K2))

    • 在 B2:B21 中查找 X3̈́ 的值,(范围的第一列)
    • 找到后,选择并在其右侧显示值 B2:K2-columns。

    ... 并且是 VLOOKUP 需要一个参数,通常在您输入函数名称时显示,甚至在您按下 F1(帮助)时显示。
    该参数的默认值为True,因此在这种情况下无需输入,但如果您需要在第一个参数中精确匹配,则需要在此处输入“False”。

    在它周围添加IFERROR(...;"Not found")以显示“未找到”的指示。

    --- 文件:example.csv --- 使用 M4 代替上面的 X3

    ,,,,,,,,,,,,
    ,1,,,,,,,,,A,,
    ,2,,,,,,,,,B,,"=VLOOKUP(M4;B2:K21;10;False)"
    ,3,,,,,,,,,C,,5
    ,4,,,,,,,,,D,,
    ,5,,,,,,,,,E,,
    ,6,,,,,,,,,F,,
    ,7,,,,,,,,,G,,
    ,8,,,,,,,,,H,,
    ,9,,,,,,,,,我,,
    ,10,,,,,,,,,J,,
    ,11,,,,,,,,,K,,
    ,12,,,,,,,,,L,,
    ,13,,,,,,,,,M,,
    ,14,,,,,,,,,N,,
    ,15,,,,,,,,,O,,
    ,16,,,,,,,,,P,,
    ,17,,,,,,,,,Q,,
    ,18,,,,,,,,,R,,
    ,19,,,,,,,,,S,,
    ,20,,,,,,,,,T,,
    ,21,,,,,,,,,U,,

    • 2
  3. Ilmari Karonen
    2021-12-05T12:14:25+08:002021-12-05T12:14:25+08:00

    至少,我们可以使用 去掉多余的括号IFS:

    =IFS(X3=B2,K2,X3=B3,K3,X3=B4,K4,X3=B5,K5,X3=B6,K6,X3=B7,K7,X3=B8,K8,X3=B9,K9,X3=B10,K10,X3=B11,K11,X3=B12,K12,X3=B13,K13,X3=B14,K14,X3=B15,K15,X3=B16,K16,X3=B17,K17,X3=B18,K18,X3=B19,K19,X3=B20,K20,X3=B21,K21)

    这是一个通用的简化,只要您有这样的嵌套IF函数,即使不同的条件和结果没有任何共同点,它也适用。

    但是,在您的情况下,条件有一个简单的模式,我们可以进一步简化您的表达式,例如使用 using XLOOKUP:

    =XLOOKUP(X3, B2:B21, K2:K21)

    请注意,这XLOOKUP是 Excel 2021 中的一项新功能,可能不适用于旧版本的 Excel。对于这些版本,您可以使用INDEXand获得相同的结果MATCH,如下所示:

    =INDEX(K2:K21, MATCH(X3, B2:B21, 0))

    或使用VLOOKUP:

    =VLOOKUP(X3, B2:K21, COLUMNS(B2:K2), FALSE)

    但是,在这种情况下,如果支持,XLOOKUP可能是最方便的解决方案,并且它还支持几个附加参数,这些参数可以让您具体说明搜索是如何完成的,以及在没有找到完全匹配的情况下应该做什么。

    (另请注意,INDEX/MATCH和VLOOKUP解决方案将需要调整,或者可能根本不起作用,如果您想沿行而不是列搜索或从搜索左侧的列返回值列。 XLOOKUP应该在所有情况下都有效,IMO 是一个在可能的情况下更喜欢它的好理由。)

    • 1

相关问题

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

  • Excel 数组(2 个变量)

  • 如何从 WSL 打开 office 文件

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

Sidebar

Stats

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

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

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

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

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

    • 6 个回答
  • Marko Smith

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

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

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

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +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
    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

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve