Excel 是否计算提供给 IF 函数的两个结果参数?

2023-11-24

Excel's if函数采用三个参数:一个条件、一个 if-true 值和一个 if-false 值。 Excel 是否计算出所有三个参数的值,还是仅计算条件的值和相应的结果?

澄清:我不知道是什么result of the if将会是,我想知道它是否在计算函数结果之前计算所有参数的值。

这相当于询问是否if函数使用惰性或严格评估。例如,以下伪代码:

x = 5;
print x>2 ? "Bigger" : "Smaller" + 1/0

会在具有完全严格评估的语言中抛出被零除的异常,因为它将评估1/0,即使结果不需要?:操作员。

在惰性求值语言中,?:操作员会评估x>2在决定评估哪个表达式之前。

问题是在 Excel 中,1/0产生一个合法的值(恰好是#DIV/0!) 可以存在于表达式中。因此,只需调用=if(true,1,1/0)不显示 Excel 是否正在评估1/0 or not.


非常容易测试

? iif(true, 1, 1/0) 'run-time error: division by zero

我假设你真正的意思是 iif() - 在 VBA 中这不会“短路”,所以你应该使用If..Then..Else..End If如果这可能是一个问题。

好的 - 测试你真正问的问题:

'In a VBA module
Function TruePart()
      MsgBox "True part"
      TruePart = "True"
End Function


Function FalsePart()
      MsgBox "False part"
      FalsePart = "False"
End Function

在一个单元格中:=IF(TRUE,truepart(),falsepart())

IF() 单元格的每次计算仅获取一个消息框。

作为进一步验证,这将为您提供两个 msgbox - 每一个:

Sub Tester()
    Debug.Print IIf(True, TruePart(), FalsePart())
End Sub 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel 是否计算提供给 IF 函数的两个结果参数? 的相关文章

  • Excel ISNUMBER 函数与 IF 语句

    我有一个正在使用的 Excel 文件 有一个列包含数字和文本 有时只是其中之一 我正在尝试编写一个函数来扫描单元格的最左侧部分以查看它是否以数字开头 我以为我拥有它 但显然没有 这就是我所拥有的 IF ISNUMBER LEFT E8 1
  • Excel,多个 IF AND 更高效的公式

    我正在制作一个电子表格 如下所示 Index Diff Exc Sym Sec Result Criteria Met 3 42 2 07 0 86 0 92 1 83 1 95 0 38 2 93 0 87 0 23 2 01 0 09
  • 查找最后一列并按最后一列排序

    我需要 Excel 来检测我拥有的最后一列并对该列进行排序 我有一个宏 每次使用它时都会生成一个新列 因此我无法使用常量 Sub sortyness Dim sortdata A1 Cells LastRow LastColumn As R
  • Excel,循环遍历 XLSM 文件并将行复制到另一个工作表

    我现在遇到的此代码的主要问题是处理我打开的 xlsm 文件的错误 我对这些文件的 VB 代码没有编辑权限 如果 vb 出错 有没有办法跳过文件 我有一个包含大约 99 个 xlsm 文件的文件夹 我希望循环遍历每个文件并复制每个工作簿中的第
  • 用于导出到 CSV/Excel 的数据 URI(无服务器端请求):浏览器支持/限制?

    以下问题 Javascript 或 Flash 导出至 CSV Excel https stackoverflow com questions 8150516 javascript or flash export to csv excel
  • 如何根据文本框值过滤列表框值

    我在用户窗体上有一个文本框和一个列表框 我想根据我在文本框中输入的值过滤列表框中的值 名为 TMP 的工作表具有值 我根据文本框更改事件对其进行过滤 但在将该值添加到列表框中时它 会自动退出 Private Sub Textbox1 Cha
  • 使用 Excel 2010 通过存储过程读取/写入 SQL Server 2008 数据库

    我们有一个 SQL Server 2008 数据库 它有存储过程来处理读 写等 这些过程由各种应用程序内部使用 需要一个人直接更新数据库中名为 Employee 的表 更新非常简单 更新 VARCHAR 和 INT 外键 字段 问题是 Sh
  • 在适用于 Windows 和 Mac 的 VBA 中指定用户文件夹的路径

    我正在编写一个使用 VBA 从 Excel 生成文件的工具 生成的文件将写入用户的 Documents 文件夹中的文件夹 如果存在 e g C Users
  • 尝试使用 Excel 中的 VBA 从网页中提取一个值

    我几天来一直在尝试查找信息 但是我找到的所有示例都只有一小段代码 我需要全部 我想要做的是从主页中提取一个值并将其放入 Excel 的单元格中 然后从同一站点上的另一个页面获取另一个值并放入下一个单元格等 该页面是瑞典证券交易所页面 我用作
  • 检查工作表是否存在,如果不存在则创建-VBA [重复]

    这个问题在这里已经有答案了 我已经测试了许多代码 这些代码检查工作表是否存在 基于名称 如果不存在则创建一个 其中一些循环所有工作表 一些引用工作表 如果创建错误则意味着该工作表不存在 哪一种是最合适的 正统的 更快的方式来完成这个任务 目
  • 使用 Powershell SQL 将数据提取到 Excel

    我想使用 powershell 将数据从 SQL Server 提取到新的 excel 文件 对于小型数据集 我的代码可以工作 但某些表的行数超过 100 000 行 这将需要很长时间 我不在 SQl 服务器中使用该实用程序的原因是因为我想
  • Excel VBA 多张表求和

    我正在尝试创建一个或多个函数 可以将每个客户的考勤卡每日工作时间相加 得出每天的总工作时间 每个客户在一个工作簿中都有自己的工作表 目前 我有一个函数可以确定与第一个客户一起使用的工作表 工作簿中的第三个工作表 Function First
  • 如何在 apache poi 中找到包含图片的单元格

    我尝试在 xls 文档中循环图像 我写下一个代码 HSSFPatriarch patriarch sheet getDrawingPatriarch if patriarch null Loop through the objects fo
  • 如果单元格包含文本,则条件格式化整行

    我有一个 Excel 工作表 我正在尝试使用条件格式 但它似乎没有像我希望的那样工作 似乎任何公式都不起作用 因为我不希望单元格匹配 TBC 而是包含它 简而言之 我正在寻找这个 如果 D2 包含 TBC 则突出显示整行 我已经通过 Goo
  • 如何使用 VBA 忽略范围内的绿色三角形错误,而不逐个单元循环?

    我有一些正在自动化和分发的大型数据集 我想消除警告用户有关存储为文本的数字的绿色小三角形 我使用了以下代码 但在大量纸张上速度非常慢 Range Cells 1 1 Cells lastrow lColumn Select kill tho
  • VBA 代码基准测试

    对 VBA 代码进行基准测试最准确的方法是什么 在我的例子中 我正在 Excel 中测试代码 除了下面的 2 种之外 还有其他对代码进行基准测试的技术吗 如果有 该方法的优点 缺点是什么 这里有两种流行的方法 First Timer Sub
  • 如何在 Rails ActiveRecord 中的日期指定小于今天的条件

    我正在尝试找出如何提取我的集合中的所有记录的字段publish是真的并且expires比今天少 我有以下内容 但我认为小于部分不起作用 有人可以指出我正确的轨道吗 Announcement where publish true expire
  • 将 .XLS 转换为制表符分隔的 .TXT

    我可以使用 C 将 Excel XLS 文件转换为 txt tsv 制表符分隔值 文件吗 使用 OleDb 可能很棘手 并且可能会导致问题 具体取决于创建电子表格的 Excel 版本 例如 上面的示例适用于 xls 但不适用于 xlsx 您
  • 将单独的范围放入二维数组中

    我正在尝试获取大小的二维数组 x 3 填充 X只是工作表的大小 行数 并且有 3 列我感兴趣 例如 这些列彼此不靠近arr i 0 应从 AA 栏开始填写 arr i 1 应来自 K 列 并且arr i 2 需要来自 L 列 我尝试按以下方
  • 如何测试字符串中的前三个字符是r中的字母还是数字?

    下面给出了我拥有的数据集的示例 请注意 总数据集中我有超过两列 ID X 1 MJF34 2 GA249D 3 DEW235R 4 4SDFR3 5 DAS3 我想测试 X 中的前三个字符是否是字母 如果是 那么我想替换该值以仅显示前三个字

随机推荐

  • 引用类型中定义的值类型存储在哪里(堆或堆栈)?

    引用类型中定义的值类型是存储在堆上还是堆栈上 如果存储在堆上 那么什么时候值类型存储在堆栈上 如果存储在堆栈上 那么当所有内容最终都以值类型结束时 堆内会存放什么 存储在堆栈上的唯一变量是函数的局部变量 对于引用类型 引用存储在堆栈上 而它
  • 如何更改 VS Code 的“资源管理器”窗口中的字体?

    有没有办法更改资源管理器窗口 左侧面板显示工作目录中的文件 而不是您编写代码的编辑器 中的字体 实际上有一个扩大在 vscode 中提供所需的功能 按照链接中的说明进行操作 添加CSS代码 monaco panel view in vsco
  • 检测postMessage是否可以发送对象?

    我正在寻找一种巧妙的方法来检测浏览器中的 postMessage 是否支持对象或字符串的发送和接收 我认为肯定有人写过一些这样做的东西 但我还没有找到解决方案 我正在使用 postMessage 向 WebWorker 发送数据 从 Web
  • Xcode 12 和 iOS 14 中的手势问题

    升级到 Xcode 12 和 iOS 14 后遇到问题 设想 我有一个嵌套的 UITableView 嵌套表视图 像下面这样 class GAllowGestureEventPassTableView UITableView UIGestu
  • new 和 new[1] 和有什么区别?

    有什么区别new and new 1 我可以用吗delete with new 1 Edit 好吧好吧 我应该提供背景 对此感到抱歉 我正在使用 VS 2010 评估 BoundsChecker 当我在 new 1 上使用 delete 时
  • 查找 int 的“字符串长度”

    基本上我想返回 int gt 值中的位数 如下所示 int 1 gt 1 int 123 gt 3 int 12345678 gt 8 我对C一无所知 所以请耐心等待 我知道 Objective C 但我使用整数和浮点数而不是 NSNumb
  • 如何将csv中的数据获取到python对象中

    我是一个Python初学者 无法以所需的对象格式将数据从 csv 导入 python 以满足 python 函数的要求 如果我在 python 中手动创建数据 而不是从 csv 引入数据 则以下代码有效 class Student obje
  • ggplot2:手动添加图例

    我怎样才能绘制地图any现有 ggplot 的 不相关 图例 免责声明 请不要恨我 我知道使用 ggplot2 创建图例的最佳方法是正确映射数据 99 的情况下我都会这样做 然而 我在这里要求的东西通常可以给我任何我想要的传奇 As an
  • 如何使用 Ninject 实例化 MEF 导出对象?

    我的应用程序正在使用 MEF 从外部程序集中导出一些类 这些类是为构造函数注入而设置的 我面临的问题是 当我尝试访问这些类时 MEF 正在尝试实例化这些类 有没有办法让 Ninject 负责类的实例化 IEnumerable
  • Java 中带有整数键的哈希表

    我正在尝试创建一个哈希表 如下所示 Hashtable
  • 将 T-SQL 语句解析为标记

    你可以看到here多好啊C 代码语句被解析为标记 例如 以下代码 namespace MyNamespace class MyClass public void MyFunction int arg1 int var1 arg1 被解析为
  • 使用自定义类型扩展指定 DataTemplate.DataType

    我有这个标记扩展 public class NullableExtension TypeExtension public NullableExtension public NullableExtension string type base
  • PHP 中不使用 preg_match() 的 UTF-8 验证

    我需要验证一些以 UTF 8 编码的用户输入 许多人建议使用以下代码 preg match A x09 x0A x0D x20 x7E xC2 xDF x80 xBF xE0 xA0 xBF x80 xBF xE1 xEC xEE xEF
  • glVertexAttribPointer 内置顶点属性,如 gl_Vertex、gl_Normal

    我必须使用 glVertexAttribPointer 将顶点属性发送到期望它们作为内置的着色器 gl Vertex gl Color etc The glVertexAttribPointer函数需要指定每个内置属性的索引 或位置 我可以
  • 使用不同的 SQL 查询批量准备语句

    我发现现有的问题similar对于这个问题实际上并没有明确的答案 带有一个 sql 查询的普通批处理准备语句将如下所示 private static void batchInsertRecordsIntoTable throws SQLEx
  • 视图的 SELECT 在 FROM 子句中包含子查询

    我有两个表 我需要创建一个视图 这些表格是 credit orders id client id number of credits payment status credit usage id client id credits used
  • 带有CSS三角形的边框半径

    I have 一个矩形对角线的每一边都有自己的颜色 div width 0 height 0 border left 150px solid green border top 100px solid gray 现在我想向 div 添加边框半
  • 使我的 NumPy 数组跨进程共享

    我已经阅读了很多关于共享数组的问题 对于简单的数组来说 它似乎足够简单 但我一直试图让它适用于我拥有的数组 import numpy as np data np zeros 250 dtype float32 250000 2 float3
  • 在node.js中加载并执行外部js文件并访问局部变量?

    做一个简单的事情是否容易 可能include path to file Node js 中的命令类型 我想做的就是访问局部变量并运行脚本 人们通常如何组织比简单的 hello world 更大的 Node js 项目 功能齐全的动态网站 例
  • Excel 是否计算提供给 IF 函数的两个结果参数?

    Excel s if函数采用三个参数 一个条件 一个 if true 值和一个 if false 值 Excel 是否计算出所有三个参数的值 还是仅计算条件的值和相应的结果 澄清 我不知道是什么result of the if将会是 我想知