如果数字在某个范围内,则返回一个值


2

我正在寻找一些关于我的预定提款问题的帮助。我目前用嵌套的IF函数来解决这个问题,但是我的范围越来越大,导致越来越多的嵌套IF函数。除此之外,我正在运行优化,所以在某一点上它只会爆炸。

问题:

Low        High        Amount to withdraw
600000     2000000     32000
300000     599999      20000
0          299999      8000

因此,用户可以输入当前存储空间,例如325000,工作表将吐出20000.如果用户提交了153555,则答案将吐出8000

就像我说只用3个棘轮使用嵌套if子句并非不可能,但是如果条款不可行则可以有10个棘轮和嵌套。我想用Excel公式而不是宏来解决这个问题。

Answers:


2

按以下格式设置括号信息 1

Low       Amount to withdraw
0         8000
300000    20000
600000    32000
2000000   #N/A

你工作簿里的某个地方;让我们说吧 E2:F5 (第1行中包含标题)。然后使用该功能

=VLOOKUP(,E $ 2:F $ 5,2) 

查找并检索表中最后一行的第二个值(即,要撤回的金额)值 在哪里 E value(括号的下端)≤查找值;例如:

一个稍微更现实的公式

=IF(ISBLANK(A1), "", VLOOKUP(A1, E$2:F$5, 2))

这将显示空白输入的空白​​结果(而不是将其视为0)。


1 我们没有表中范围的高端,因为我们不需要; 299999599999 我们有多余的时候 300000600000。我们包括 2000000 作为无证支架的低端范围 2000000


由于现有公式(E:F)仅包括低和高匹配标准而不是返回的“提取金额”,因此必须每次轻微地定制以包括期望的查找。看到: i.imgur.com/QULXJej.png
James Brewer

好的,哎呀;我遗漏了一些零。 30000 本来应该 30000060000 本来应该 600000,和 32500 本来应该 325000。如果这就是你所说的,感谢你抓住它,但是,男孩,你不清楚。如果这不是你所说的,你就不清楚了。
G-Man

你在说什么?我在F栏中有“退出金额”。我没有表中范围的高端,因为我不需要;为什么我需要 299999599999 在我有桌子的时候 300000600000?在您的示例/插图中,未使用D列。但是,如果您使用的是您编写的数字而不是问题中的数字,则无法说明您的观点。
G-Man

我错误解释了你的列,因为缺少0和缺少标题,但你只使用“低”值是正确的。我的论点是你没有使用“高”值列,但我现在明白VLOOKUP匹配最接近的值大于或等于。感谢您帮助我纠正自己的知识!
James Brewer

0

我会用的 指数 比赛 功能。
假设你可以先排序你的桌子。要不然 =MATCH() 不正确地工作

enter image description here

=IF(F2<=INDEX(A:C,MATCH(F2,A:A,1),2),INDEX(A:C,MATCH(F2,A:A,1),3),"invalid")

这也检查更高的值。对于这种情况,我在第3行调整了表格。现在,400000匹配无效范围并显示 无效

在单独的单元格中分解为小公式(用户输入在单元格F2中)

[G9]  =MATCH(F2,A:A,1)             Find row in table
[G10] =INDEX(A:C,G9,2)             Find corresponding high value
[G11] =INDEX(A:C,G9,3)             Find corresponding amount to withdraw
[G12] =IF(F2<=G10,G11,"invalid")   Check if input is lower then upper boundary
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.