写入结果电子表格时,AGGREGATE 公式不会自动计算

2024-05-04

我有一个使用 OPENPYXL (v2.5.10) 库开发的 python 3.7 脚本,用于从多个 Excel 工作簿中获取数据,处理该数据,然后写入单独的 Excel 工作簿。结果工作簿包含大约 100 个命名范围和大量公式,所有这些都按预期工作,包括在 Excel 中打开工作簿时自动计算。

我在使用包含 AGGREGATE 函数的特定公式组时遇到问题。在这种情况下,公式将以正确的形式写入结果工作簿、正确的单元格。虽然其他公式在打开工作簿时显示结果值,但此公式序列仅在您选择单元格、将光标放在公式栏中(就像您正在编辑公式一样)然后按 Enter/Return 键时显示结果钥匙。未对公式进行任何更改或编辑。完成此操作后,公式将按预期工作。

我已经在最新的 macOS 和 Windows 版本的 excel 上对此进行了测试,并且得到了相同的行为。我应该补充一点,尝试“立即计算”、CtrlShiftAltF9 和“计算工作表”选项不会产生任何影响。该公式仅在您使用 Enter/Return 键时进行计算。

写出公式的代码是:

activeSheet.cell(row, col).value = f"=IFERROR(INDEX({rngData}, AGGREGATE(15,3,({rng}={cellRef})/({rng}={cellRef})*ROW( {rng}),{nth}),{colIndex}),\"\")"

例如,在 Excel 工作簿单元格中给出的正确结果如下:

=IFERROR(INDEX(_monthAgedDebt_Data, AGGREGATE(15,3,(_monthAgedDebt_ProjectNumbers=$L$4)/(_monthAgedDebt_ProjectNumbers=$L$4)*ROW(_monthAgedDebt_ProjectNumbers),1),6),"")

总结来说:

  • 该代码可以正常工作,因为它将正确的公式以正确的形式写入正确的单元格
  • 在 Excel 中,公式不会自动计算,只有在您编辑单元格中的公式、不进行任何更改并按 Enter/Return 退出编辑时才有效

AGGREGATE 生成数组结果是否有问题?我选择这种形式的公式主要是因为您不需要 CTL-SHIFT-ENTER 即可使其工作。如果将其直接输入到 Excel 的单元格中,则可以将其作为普通公式输入。

除此之外,我无法找到有关堆栈溢出的帮助one https://stackoverflow.com/questions/32590616/excel-is-not-updating-cells-options-formula-workbook-calculation-set-to-aut?rq=1。然而,这里提出的解决方案也不起作用。

This question https://stackoverflow.com/questions/56241939/excel-is-not-calculating-formulas?rq=1提出了类似的问题,但没有相关回应。

This question https://stackoverflow.com/questions/51287407/concat-concatenate-textjoin-all-return-name?rq=1可能有线索,但我似乎也无法做到这一点。

任何有关如何解决此问题的想法表示赞赏。我不确定这是 openpyxl 问题还是 excel 问题,也不知道还要测试什么。


全部 - 完整性的最终答案。

事实证明,解决这个问题的关键在于 OPENPYXL,并且 Charlie Clark 在答案中提供的指导

question https://stackoverflow.com/questions/51287407/concat-concatenate-textjoin-all-return-name?rq=1

是正确的。我最初错误地应用了该解决方案。

我将公式更改为:

activeSheet.cell(行,列).value = \ f"=IFERROR(INDEX({rngData}, _xlfn.AGGREGATE(15,3,({rng}={cellRef})/({rng}={cellRef})*ROW({rng}),{nth}) ,{colIndex}),\"\")"

通过添加“_xlfn”。到 AGGREGATE 函数语句的前面。

Excel 电子表格现在可以按预期工作,无需编辑包含公式的单元格。

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

写入结果电子表格时,AGGREGATE 公式不会自动计算 的相关文章

  • Python/curve_fit:无法通过初始化猜测传递数组

    我有这个函数来计算某种多项式 def pipoly df pj n np size pj p pj 0 for j in range 1 n p pj j df j return p pj应该是一个包含多项式系数的初始猜测的数组 因此 多项
  • 拖动数据获取信号发射两次 python gtk3

    我希望源也是目的地 我实现了下面的信号 但拖动数据获取信号触发了两次 第二次 数据变量 在 on drag data get 中 被自动选择的 ListStore 项填充 class DragSource Gtk TreeView def
  • 如何在 Excel 中创建 GUID?

    我需要一个函数来将 GUID 添加到 Excel 中的单元格 我发现stackoverflow 上的上一个问题 https stackoverflow com questions 7031347 how can i generate gui
  • 冻结/挂起 tkinter GUI 等待线程完成

    按下按钮后我的界面冻结了 我正在使用线程 但我不确定为什么仍然挂起 任何帮助将不胜感激 提前致谢 class magic def init self self mainQueue queue Queue def addItem self q
  • 防止在单元格中更改行时重新格式化字符

    我有一个带有格式化文本的单元格 其中包含我想要用行更改替换的某个子字符串 子字符串是带有方括号的 enterkey 这是这个问题的一个变体在 Excel 中将 HTML 标记 替换为 Alt Enter https stackoverflo
  • 按字母顺序对组合框值进行排序

    我的 Excel 用户表单中有一个组合框 按字母顺序排序的最简单方法是什么 它的值是在 vba 中硬编码的 新的值只是添加到底部 因此它们不按任何顺序排列 当前正在使用用户表单 以便我们的用户可以将数据从我们的数据库导入到 Excel 中
  • 如何使用Python3.4在tornado中进行异步mysql操作?

    我现在使用Python3 4 我想在Tornado中使用异步mysql客户端 我已经发现torndb https github com bdarnell torndb但在阅读其源代码后 我认为它无法进行异步mysql操作 因为它只是封装了M
  • 返回表情符号名称而不是表情符号

    我有这个 1 不带单引号 在 Python 3 中 即 one 有没有一种方法可以获取表情符号 如上面的 并打印相应的表情符号 在本例中为 one 名称 我从 Discord py 反应对象中获取表情符号 就您而言 该表情符号是一个两个字符
  • Python 3:将元组转换为字符串

    我有以下代码 var one var two var three 1 var one string one var 1 我需要对其执行以下操作 var four string two var one 但是 这会返回以下错误 TypeErro
  • 从 Excel VBA 调用 Bloomberg BQL 查询

    出于复杂的原因 我想在 VBA 中自动调用 Bloomi BQL 查询 我正在从 VBA 脚本更改 Excel 工作表中 BQL Query 公式的输入 并调用 Application Calculate 来运行查询 显示更改为 N A 请
  • 将整个工作表复制到 Excel 2010 中的新工作表

    我发现了类似的问题 涉及复制一个工作簿中的整个工作表并将其粘贴到另一个工作簿 但我感兴趣的是简单地复制整个工作表并将其粘贴到同一工作簿中的新工作表 我正在将 2003 xls 文件转换为 2010 xlsm 用于在工作表之间复制和粘贴的旧方
  • 如何使用 Python 3 绕过 HTTP Error 403: Forbidden with urllib.request

    您好 不是每次都这样 但有时在尝试访问 LSE 代码时 我会收到每一个烦人的 HTTP 错误 403 禁止消息 任何人都知道我如何仅使用标准 python 模块来克服这个问题 遗憾的是没有漂亮的汤 import urllib request
  • IndexError:索引 10 超出尺寸为 10 的轴 0 的范围

    我正在以数字方式为 x 网格和 x 向量以及时间网格设置网格 但我再次设置了一个数组x 位置 只能在 0 到 20 之间并且t 时间 将从 0 到 1000 以便求解热方程 但每次我想要 例如 我将步数设置为 10 时 都会收到错误 Tra
  • VBA在下一个空白行正确输入用户表单数据

    创建了一个用户表单 添加了一个文本框和一个组合框 添加了提交按钮 单击 提交 后 会将数据添加到电子表格中 据我所知和我所读到的 这是错误的 ActiveCell Value TextBox3 Text ActiveCell Offset
  • 无法在 selenium 和 requests 之间传递 cookie,以便使用后者进行抓取

    我用 python 结合 selenium 编写了一个脚本来登录网站 然后从driver to requests这样我就可以继续使用requests进行进一步的活动 I used item soup select one div class
  • 使用 Paramiko 进行 DSA 密钥转发?

    我正在使用 Paramiko 在远程服务器上执行 bash 脚本 在其中一些脚本中 存在与其他服务器的 ssh 连接 如果我只使用 bash 不使用 Python 我的 DSA 密钥将被第一个远程服务器上的 bash 脚本转发并使用 以连接
  • python名称错误名称未定义

    在 python3 中运行此代码时出现错误名称未定义 def main D create empty dictionary for x in open wvtc data txt key name email record x strip
  • 粘贴数据后取消选择列

    这可能很简单 但我无法解决它 我可以使用以下命令释放复制数据的列Application CutCopyMode False但粘贴数据的列仍然保持选中状态 我尝试过ActiveSheet EnableSelection xlNone正如论坛之
  • ReDim 保留“下标超出范围”

    我正在尝试将数据从 2 个双精度数组移动到 2 个不同的双精度数组 我不确定大小是多少 因为我正在从第一个数组中随机抽取样本并将其放入第二个数组中 当我添加 ReDim Preserve 行时 出现下标超出范围错误 Function Cre
  • 在一个单元格中显示两个日期

    我正在尝试在 Excel 的一个单元格中显示两个日期 我使用了以下公式 DATE YEAR NOW MONTH NOW I1 DATE YEAR NOW MONTH NOW I15 其中I1和I15的值分别为1和15 我选择这个公式的原因是

随机推荐

  • 如何将异步函数传递给 Python 中的线程目标?

    我有以下代码 async some callback args await some function 我需要将它作为目标传递给线程 thread threading Thread target some callback args som
  • 查找返回的 mysql 结果中的行数(nodejs)

    当使用 felixge 的 mysql for node js 时 如何向结果对象询问返回的行数 我有一个相当昂贵的查询 所以我不想运行COUNT 首先 只是为了第二次运行查询 如果是选择查询 则只需获取返回数组的长度即可 connecti
  • 如何获取 Visual Studio 2017 的离线安装程序?

    我最近尝试安装视觉工作室 2017 但没有离线安装程序 如何获取它的离线安装程序 我也尝试安装Xamarin 尽管我有最新的安卓软件开发工具包 它要求我下载安卓软件开发工具包再次 如何纠正 提前致谢 要生成离线安装程序 您首先需要下载相应的
  • 如何在 NetBeans 中执行“git Blame”?

    NetBeans 内置了对 git 的支持 我可以做一个git blame在 NetBeans 内 如果是这样 怎么办 I googled https www google nl search q netbeans git blame它 但
  • 为什么 Resources.Load 返回 null?

    我的项目有多个精灵 位于 Assets Sprites 中 我想使用 C 脚本加载它们 我已经测试过这个 Sprite myFruit Resources Load
  • 使用服务器帐户模拟用户以访问其 Google 云端硬盘时出现 401 未经授权错误

    我正在用 Java 编写一个后端进程 它将模拟用户并在其 Google Drive 上添加 删除文档 服务器帐户似乎验证正确 但是当我尝试冒充用户时 我得到一个401 Unauthorized error 请参阅下面的详细信息 配置 我已配
  • Python:Tkinter Treeview 可搜索

    相当直接的问题 尽管我用了最好的谷歌搜索 但我找不到任何相关内容 我有一个 Python 应用程序 它使用 Tkinter Treeview 小部件作为表格 这对于我需要使用它的用途来说效果很好 但最终会在一些树中出现几百个项目 无论如何
  • 如何将 NHibernate 和 DTO 与 RIA 服务结合使用

    我将 NHibernate 与 RIA 服务和 Silverlight 4 一起使用 我创建 DTO 来通过 RIA 服务传输数据 而不是分发我的域层对象 根据 Martin Fowler 的分布式对象设计第一定律 不要分发您的对象 DTO
  • Azure 上的 Laravel 应用程序:用户“azure”@“localhost”的访问被拒绝

    我正在将 Laravel 应用程序部署到 Azure Web 应用程序 Mysql 到目前为止我执行了以下步骤 1 在应用程序中激活Mysql 2 连接到 BitBucket 存储库并确保代码已同步 3 创建 env文件并设置数据库变量如下
  • android:clickable="true" 意味着它不可点击?

    我有一个 ListView 其中包含一些自定义部分 每个部分都有自己的标题视图 我希望列表中的元素可单击 但显然不希望节标题可单击 所以在我添加的节标题的 xml 中android clickable false 调试时我注意到节标题仍然响
  • 如何仅使用 XAML 标记在单击另一个控件时打开 WPF 弹出窗口?

    我有两个控件 一个 TextBlock 和一个 PopUp 当用户在文本块上单击 MouseDown 时 我想显示弹出窗口 我认为我可以使用弹出窗口上的 EventTrigger 来完成此操作 但我不能在 EventTrigger 中使用设
  • 在主窗体上使用 BeginInvoke 调用的网络任务未执行

    我使用 Visual Studio 2013 构建了一个具有单个表单的 C 应用程序 并且该应用程序有两个更新屏幕的例程 更新屏幕的例程需要在主线程上运行 因此我自己的线程 不与屏幕交互 在需要更新时调用主窗体上的 BeginInvoke
  • Lua中如何在另一个表的表成员中搜索

    我正在编写一个 lua 程序 它有一个表 该表是另一个表的成员 当我向该成员表添加新日期时 一切正常 但是 当我想在该表中搜索时 无论我给出什么键 我总是会将最后一行添加到表中 如何在该成员表中正确搜索 Stream name functi
  • 防止 iOS 上的反射(objc/运行时)

    我正在开发一个处理敏感数据的静态库 使用该库的开发人员必须不能在该库上使用反射 在Android上 我们通过开发一个来解决这个问题aar文件与service并运行service进入单独的进程 当服务运行到另一个进程中时 开发人员不能使用反射
  • 当用户在单元格中输入触发器时执行子例程

    Excel 中的示例数据 A B C 1 9 5 2 4 y 3 3 1 9 4 66 4 5 5 9 我想做的是当我进入Y在 B 列中 我想要 一些东西 执行 我不认为If Active Cell Y将在这里工作 因为当我进入Y然后按 E
  • 如何对搜索引擎关键词进行聚类?

    从 Google Analytics 中 我有一个 长 关键字列表 人们在搜索引擎中使用这些关键字来查找我的网站 我想找到 核心关键词 假设的例子 java online training learning java scala train
  • 使用rvest或httr登录网页上的非标准表单

    我正在尝试使用 rvest 来抓取需要在表单上输入电子邮件 密码登录的网页 rm list ls library rvest Trying to sign into a form using email password url lt ht
  • 如何通过 Grunt 运行节点脚本?

    我希望通过我的 gruntfile 运行节点命令 我只需要运行 node index js 作为任何其他任务之前的第一个任务 我尝试四处寻找但没有找到答案 我相信这可能很简单 但我不确定如何做 我需要加载 nmp 任务吗 这就是我的 Gru
  • 如何在 Android 中从 JPEG 创建动画 GIF(开发)

    我正在寻找一种简单的方法create本机 Android 应用程序中的动画 GIF 源文件应为 JPEG 来自相机或其他文件 输出应在设备上保存为 GIF 我不想知道如何播放动画或动画 GIF 文件 需要明确的是 我想知道如何将单个图像逐帧
  • 写入结果电子表格时,AGGREGATE 公式不会自动计算

    我有一个使用 OPENPYXL v2 5 10 库开发的 python 3 7 脚本 用于从多个 Excel 工作簿中获取数据 处理该数据 然后写入单独的 Excel 工作簿 结果工作簿包含大约 100 个命名范围和大量公式 所有这些都按预