ROW() 函数在 SUM() 和 SUMPRODUCT() 中的行为不同

2024-05-05

问题定义:

在单元格中输入任意数字A1。现在在第一行的任意位置尝试以下公式。

=SUM(INDIRECT("A"&ROW()))

and

=SUMPRODUCT(INDIRECT("A"&ROW()))

第一个公式进行计算,第二个公式给出 #VALUE 错误。 这是由于ROW()函数内部表现不同SUMPRODUCT().

在第一个公式中,ROW()回报1。在第二个公式中,行返回{1}(一种长度的数组),即使该公式尚未作为 CSE 公式输入。

为什么会出现这种情况?

背景

我需要评估该类型的公式

=SUMPRODUCT(INDIRECT(*range formed by concatenation and using ROW()*)>1)

这是一个错误。作为解决此问题的方法,我现在计算ROW()在另一个单元格中(显然在同一行)并将其连接到我的内部INDIRECT()。或者,我也尝试将其封装在 sum 函数中,例如SUM(ROW()),这也有效。

如果有人可以解释(或向我指出可以解释的资源)原因,我将不胜感激ROW()返回里面的一个数组SUMPRODUCT()没有进入 CSE。


有趣的问题。这里有一些微妙的问题,我还没有看到记录。

它似乎INDIRECT("A"&ROW())返回一个由一个元素组成的数组,该元素是对单元格的引用,而不是该单元格中的值。许多函数无法正确解析此类数据,但 N 和 T 等少数函数可以“取消引用”数组并返回基础值。

以数组中有两个元素的情况为例:

=SUM(N(INDIRECT("A"&ROW(1:2))))

输入数组时返回 A1+A2,但正常输入时仅返回 A1。但是,正常输入时,将此公式中的 ROW(1:2) 更改为 {1;2} 会返回正确的结果。无论是否输入数组,等效的 SUMPRODUCT 公式都会返回 A1+A2。

这可能与参数在函数中的注册方式有关。根据http://msdn.microsoft.com/en-us/library/bb687900.aspx http://msdn.microsoft.com/en-us/library/bb687900.aspx本质上有两种注册函数参数来处理 Excel 数据类型的方法:

输入 R/U:“值、数组和范围引用。”

输入 P/Q:“在准备这些参数时,Excel 将单单元格引用转换为简单值,将多单元格引用转换为数组。”

SUM 参数似乎符合 R/U 类型,而 SUMPRODUCT 参数的行为类似于 P/Q 类型。输入上面的 SUM 公式的数组会强制将 ROW 中的范围引用参数计算为数组,而使用 SUMPRODUCT 时会自动发生这种情况。

Update

经过更多调查后,这里有可能支持这一理论的进一步证据。根据评论中的链接,公式 =SUM((A1,A2)) 给出与以下相同的值:

?executeexcel4macro("CALL(""Xlcall32"",""Excel4"",""2JRJR"",4,,1,(!R1C1,!R2C1))")

通过更改将最后一个参数注册为类型 P2JRJR to 2JRJP在这种情况下会出现错误,但确实允许单个区域范围,例如!R1C1:!R2C1。另一方面,将 4 (xlf sum) 更改为 228 (xlf sumproduct) 只允许单个区域引用,无论采用哪种方式调用,就像 SUMPRODUCT 一样。

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

ROW() 函数在 SUM() 和 SUMPRODUCT() 中的行为不同 的相关文章

  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • Excel 的 VBA - 如何检查范围的交集不为空

    我有两个问题 1 如何检查交集或范围是否不为空 例如 如果我想检查它是否为空 我会写 if application intersect r1 r2 is nothing 但有什么东西是否定虚无的吗 例如 并非没有任何事情不起作用 2 如何比
  • Excel 公式从单元格中获取字符串值并按字母顺序对其字符进行排序

    你能帮我制作一个 Excel 公式 从单元格中获取字符串值并按字母顺序对其字符进行排序吗 Ex 原始单元格值 BACR 已排序的字符单元格 ABCR 编辑 2022 年 4 月 29 日 随着 Office 365 Excel 中引入的动态
  • 循环浏览文件夹中的工作簿

    我正在尝试从文件夹中的所有工作簿复制某些单元格 下面的代码仅循环遍历第一个文件 VBA 新手 欢迎任何帮助 提前致谢 Sub Get Data Dim Directory As String Dim Filename As String D
  • 如何使用 ssis 2008 循环遍历 Excel 文件并获取工作表名称

    我正在尝试将 Excel 文件中的数据加载到 SQL 数据库表中 该文件的工作表名称不是静态的 工作表名称包含 yyyymmdd 它会随每个文件而变化 我按照提供的解决方案进行操作如何使用 SSIS 包循环遍历 Excel 文件并将其加载到
  • 如何将Excel中的每个条目转换为一行“矩阵”表

    我有类似的东西 1 2 3 a x o x b x x o c o o o 并想将其转换成像这样的线 1 a x 1 b x 1 c x 2 a o 2 b x 2 c o 3 a x 3 b o 3 c o 通过使用Excel文档中的公式
  • 将 Excel 数字日期重新格式化为 R 日期

    希望将从 Excel 中提取的列重新格式化为包含数字 Excel 格式 例如 40182 的数据框 as date 40182 origin 1899 12 30 format b Y Returns 1 2070 年 1 月 5 日 我正
  • 将整个工作表复制到 Excel 2010 中的新工作表

    我发现了类似的问题 涉及复制一个工作簿中的整个工作表并将其粘贴到另一个工作簿 但我感兴趣的是简单地复制整个工作表并将其粘贴到同一工作簿中的新工作表 我正在将 2003 xls 文件转换为 2010 xlsm 用于在工作表之间复制和粘贴的旧方
  • 如何将工作表和范围作为变量传递?

    我想在子例程之间传递工作表的名称和范围 以下抛出 下标超出范围 错误 Sub This x Sheet1 y D3 MsgBox x Range y Value End Sub This is 我的项目资源管理器的示例 https i st
  • VBA FreeLibrary 不卸载 DLL

    当我使用完一个 DLL 文件后 我需要删除它 代码完成后清理 我尝试在 Excel VBA 中使用 LoadLibrary 和 FreeLibrary 但无论我做什么 Excel exe 都会坚持 DLL 文件 Public Declare
  • VBA在下一个空白行正确输入用户表单数据

    创建了一个用户表单 添加了一个文本框和一个组合框 添加了提交按钮 单击 提交 后 会将数据添加到电子表格中 据我所知和我所读到的 这是错误的 ActiveCell Value TextBox3 Text ActiveCell Offset
  • VBA - 如何从网站下载.xls并将数据放入Excel文件

    我设法使用 VBA 达到准备从网络下载 Excel 文件的程度 但我无法弄清楚如何实际下载该文件并将其内容放入我正在使用的 Excel 文件中 有什么建议么 谢谢 这是到目前为止的代码 Sub GetData Dim IE As Inter
  • excel公式中可以设置粗体吗?

    格式样本 https i stack imgur com dmtpZ png 这里我想添加文本a1 b1 c1 但是我想boldb1 文字如命令模块会大胆 这个词可以加粗吗 日期格式 https i stack imgur com jF9U
  • 粘贴数据后取消选择列

    这可能很简单 但我无法解决它 我可以使用以下命令释放复制数据的列Application CutCopyMode False但粘贴数据的列仍然保持选中状态 我尝试过ActiveSheet EnableSelection xlNone正如论坛之
  • 将工作表保存为 CSV,且 Excel 公式完好无损

    我完全使用 VBA for Excel 工作 我的解决方案必须完全是程序化的 而不是用户驱动的 该解决方案的要求是用户启动一个宏来获取工作簿并将 8 个工作表保存到单独的 CSV 文件中 保留公式并丢弃公式分辨率 我有一系列工作表 sht
  • 调用 UDF 时公式中使用的值的数据类型错误

    我一直在努力找出这里出了什么问题 我有两个包含字符串值的列 我使用第三列调用工作表中的 UDF 但最终得到 Value 并出现错误 公式中使用的值的数据类型错误 Eg Col I Col J File1 Y File1 N File2 Y
  • vba Excel 中的多个查找请求(在查找中查找)

    我正在尝试执行一种嵌套查找请求 用例是我需要在一个工作表上查找组 如果找到 则从找到的行中的单独列中获取用户 ID 值 然后在另一张纸 然后它应该执行一系列操作 然后在第一张表中找到下一个出现的组 我的代码是 LookupGroup Spl
  • 如何从Excel调用VBA函数

    我有一个 excel 文件 我必须在其中放置验证规则 我有一个单元格表示 客户时间 用户可以在其中输入时间 但它是自定义时间 用户可以这样输入时间 23 45 98 20 100 30 用户不能输入字符串 并且不能输入除冒号之外的特殊字符
  • 为什么 MS Excel 在 Worksheet_Change Sub 过程中崩溃并关闭?

    当我在 Excel 工作表上运行 VBA 代码时 我遇到了 Excel 崩溃的问题 我正在尝试在工作表更改中添加以下公式 Private Sub Worksheet Change ByVal Target As Range Workshee
  • 在Excel中过滤后打印可见区域的宏

    我有一个根据过滤表的宏column A价值观 现在我想打印only过滤器后的可见行 但遗憾的是它打印了所有行 包括过滤期间隐藏的顶部和底部行 在我的工作表中 有来自的数据Column A I 但打印区域只能是Columns C I 过滤后的

随机推荐

  • 使无头浏览器停止加载页面

    我正在使用 watir webdriver ruby gem 它启动浏览器 Chrome 并开始加载页面 页面加载速度太慢 watir webdriver 引发超时错误 如何让浏览器停止加载页面 require watir webdrive
  • 如何在 AWS CDK 堆栈中压缩 Node Lambda 依赖项?

    我正在使用 CDK 通过 API Gateway Lambda 和 DynamoDB 创建一个简单的无服务器项目 到目前为止看起来很酷 但是当我向 Lambda 添加外部依赖项时出现以下错误 Runtime ImportModuleErro
  • 为什么我的 Silverlight 4 浏览器外应用程序只显示白色?

    My 银光应用作品fine当运行在browser 但是当我将其安装为浏览器外应用程序中 窗口框架会出现适当的图标和标题 但窗口的内容是只是白色 它是在开始菜单但当我关闭它并再次打开时 它仍然是空白的 我在上复制了这个Windows 7的 a
  • 更新 PartialView mvc 4

    哎呀 如何使用模型中的数据刷新部分视图 第一次 当页面加载时它可以正常工作 但当我从操作中调用它时却不能正常工作 我创建的结构如下所示 在我看来任何地方 Html RenderAction UpdatePoints 我的部分观点 更新点 h
  • 添加和提交文件后Git推送不起作用

    I m new to Github and Git tried to use gitbash on Windows After adding and committing files If I add the git push cmd Th
  • 使用 Firebase 验证用户手机号码的正确方法

    我知道我可以使用Firebase s电话验证开启Android and iOS 但问题是有关客户端验证的信息很容易在客户端被伪造 因为我只使用服务器端SSL证书 所以 只有客户端知道服务器是可信的 因此 我决定在服务器端发送手机号码并在那里
  • (不?)使用 JavaScriptSerializer 将 xml 文件(未知模式)转换为 c# 中的 json

    JavascriptSerializer 是将 xml 文件 未知模式 转换为 json 字符串的 工具 吗 这里有一些线程讨论如何在 C 中将 xml 转换为 json 以及一些推荐的专用解决方案 http www phdcc com x
  • 从 CMSampleBuffer 播放音频

    我在 iOS 中为群组创建了一个视频聊天应用程序 我一直在寻找一些方法来分别控制不同参与者的音频音量 我找到了使用静音和取消静音的方法isPlaybackEnabled in RemoteAudioTrack 但不控制音量 我还想我们是否可
  • 使用 Node.JS 客户端库插入 Google Analytics 内容实验

    我正在尝试使用 Node js 客户端库配置内容实验 但无法计算出语法 我应该将主体 实验资源 放置在哪里 如此处所述 https developers google com analytics devguides config mgmt
  • WCF 数据合约中可以包含 WCF 操作合约吗?为什么?

    我有一份数据合同 说是用户 它是可序列化的并且可以通过网络传输 我想要一个操作合约 SaveUser 我可以将 SaveUser User user 作为操作合同保留在我的服务合同中 但我可以将其作为自己的行为保留在我的数据合约本身中吗 理
  • 将行从 0 折叠到 0

    对于这样的数据集 Incident ID date product INCFI0000029582 2014 09 25 08 39 45 foo INCFI0000029582 2014 09 25 08 39 48 bar INCFI0
  • 在测试环境中设置default_url_options似乎不起作用

    我已将以下代码放入我的config environments test rb file config action mailer default url options host gt localhost 3000 但是当我运行测试时 所有
  • Symfony 3.0 - 无法加载资源“。” - 自定义路线加载器

    我正在努力将我的一个项目升级到 SF 3 该项目使用了一些自定义路由加载器 这些加载器之前工作没有问题 现在我得到了FileLoaderLoadException指出resource 无法加载 我看了一下文档 http symfony co
  • 您常见的 Magento 配置错误有哪些? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用SchemDraw库自动保存图像

    我想在Python中使用这个库来生成电气图 https cdelker bitbucket io SchemDraw https cdelker bitbucket io SchemDraw 我想在服务器中运行这段代码 这个想法是生成图像
  • 如何在代码生成过程中简化包含变量的 C 风格算术表达式?

    我正在尝试优化编译器中的表达式求值 算术表达式都是C风格的 并且它们可以包含变量 我希望尽可能简化表达 例如 3 100 A B 100 3 100可以简化为409 300 A B 主要取决于分配律 结合律和交换律 我遇到的主要困难是如何将
  • Swift 中的数据封装

    我已阅读全文斯威夫特书 https itunes apple com us book swift programming language id881256329 mt 11 并观看了所有全球开发者大会视频 https developer
  • 仅在 MarshMallow(6.0 和 6.0.1)上使用 MapActivity 进行 MapView 会使应用程序崩溃

    我正在使用 MapActivity 扩展我的活动 以动态实现 MapView 其中包含显示 mapView 的片段 public abstract class BaseHomeActivity extends MapActivity 我已经
  • iframe 不读取 Chrome 中的 cookie

    Chrome 不允许子 iframe 读取自己的 cookie 我有一个带有子 iframe 的父网页 家长在https first site com 孩子在 父级内部 cookie set with 小路 安全 真实 仅http 假 域名
  • ROW() 函数在 SUM() 和 SUMPRODUCT() 中的行为不同

    问题定义 在单元格中输入任意数字A1 现在在第一行的任意位置尝试以下公式 SUM INDIRECT A ROW and SUMPRODUCT INDIRECT A ROW 第一个公式进行计算 第二个公式给出 VALUE 错误 这是由于ROW