【问题标题】:Ranges in IF statements for ExcelExcel 的 IF 语句中的范围
【发布时间】:2014-01-07 00:20:16
【问题描述】:

我正在为我的雇主制作一个自定义的 Excel 电子表格。

我想出了一个非常讨厌的函数,它可以做我想做的事情,但我很想简化它。

我熟悉CC#Java。如果可能,我想避免使用VBA,但如果这是我唯一的选择,我可能会考虑使用它。

我正在为一家处理订单和从库存中扣除材料等的制造工厂制定计划表。我为工厂生产的所有产品设置了一个页面。每种产品使用不同的材料。我目前有一个讨厌的 if 语句,它检查 2 个表之间的匹配字符串,然后在找到匹配项时用相关信息填充其他一些单元格。

我目前有一个包含 20 个条件的 if 语句!我永远不会在真正的程序中做这样的事情!

无论如何,我基本上可以遍历一系列单元格,直到找到匹配项,然后从那里开始?这是我正在尝试做的一个示例:

选项卡:MoldInformation - 包含工厂生产的产品的所有必要信息。 选项卡:订单 - 包含客户下的所有订单。

在“订单”选项卡中,第一个单元格标题为“模具”,用户可以在其中输入一个字符串,然后在“订单”选项卡中会显示与生产订单所需的材料数量有关的信息。如果输入了某个模具,则对应于该模具的材料会在订单表中填充它们各自的选项卡。

我所有的计算都很好,但我的 if 语句看起来像这样:

=IF(A3=MoldInformation!$A$3,E3/MoldInformation!$F$3,IF(A3=MoldInformation!A$4,E3/MoldInformation!$F$4,IF(A3=MoldInformation!A$5,E3/ MoldInformation!$F$5,IF(A3=MoldInformation!A$6,E3/MoldInformation!$F$6,IF(A3=MoldInformation!A$7,E3/MoldInformation!$F$7,IF(A3=MoldInformation!A$8,E3 /MoldInformation!$F$8,IF(A3=MoldInformation!A$9,E3/MoldInformation!F$9,IF(A3=MoldInformation!A$10,E3/MoldInformation!F$10,IF(A3=MoldInformation!A$11,E3/ MoldInformation!F$11,IF(A3=MoldInformation!A$12,E3/MoldInformation!F$12,IF(A3=MoldInformation!A$13,E3/MoldInformation!F$13,IF(A3=MoldInformation!A$14,E3/MoldInformation! F$14, IF(A3=MoldInformation!A$15,E3/MoldInformation!F$15, IF(A3=MoldInformation!A$16,E3/MoldInformation!F$16, IF(A3=MoldInformation!A$17,E3/MoldInformation!F$17 , IF(A3=MoldInformation!A$18,E3/MoldInformation!F$18, IF(A3=MoldInformation!A$19,E3/MoldInformation!F$19, IF(A3=MoldInformation!H$3,E3/MoldInformation!M$3, IF (A3=MoldInformation!H$4,E3/MoldInformation!M$4,IF(A3=MoldInformation!H$5 ,E3/MoldInformation!M$5, IF(A3="",""))))))))))))))))))))

这太可怕了!无论如何,我基本上可以让它在每个单元格中“循环”,直到找到匹配项?由于它只在一个地方查找,然后从找到匹配项的任何行中提取信息,我相信这应该是可能的。

谁能帮我解决这个问题?

感谢您提供的任何帮助。如前所述,如果我可以避免使用 VBA,那就太好了,但如果你们中的任何人知道我如何在函数中完成类似的事情,我将不胜感激。

提前致谢!

此致,

加里

【问题讨论】:

    标签: function vba loops excel


    【解决方案1】:

    这太可怕了!

    丑陋是轻描淡写的:p

    你的公式可以简单地写成

    =IF(ISERROR(E3/VLOOKUP(A3,MoldInformation!A:F,6,0)),"",E3/VLOOKUP(A3,MoldInformation!A:F,6,0))

    这会做的是,它将在 MoldInformation 中找到来自 Col F 的值,其中 A 中的值(来自 MoldInformation)与 A3 匹配

    截图

    【讨论】:

    • Siddharth Routh,你太棒了!谢谢十亿!这创造了奇迹,让我的生活更轻松!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2017-10-01
    • 1970-01-01
    相关资源
    最近更新 更多