尝试使用 Excel REDUCE 对 CSV 风格数据进行折叠汇总

PowerShellカテゴリを表すパンダのイラスト PowerShell

本文是利用 AI 编写的技术解说与实现示例。虽然发布的代码和步骤是基于第一手资料构建的,但未经笔者在实际设备上进行运行验证。根据环境和版本的不同,运行情况可能会有所差异。

发布与主题概述

在 Excel 最新的公式环境中,不仅局限于传统的单元格引用或汇总向导,还提供了用于自由处理数组的高级函数。其中,“REDUCE”函数是一项强大的功能,它能够遍历整个数组,并在更新累积值(累加器)的同时将其聚合为单一的最终值。根据第一手资料,REDUCE 函数接受初始值、目标数组,以及定义如何折叠各个元素的 LAMBDA 函数作为参数。本文将聚焦于这个 REDUCE 函数,探讨在电子表格软件上进行数据汇总的可能性。

为什么有趣

通常,在 Excel 中执行条件汇总或复杂计算时,需要准备多个辅助列,或者组合使用诸如 SUMIF 和 SUMIFS 这样受限制的汇总函数。然而,通过运用 REDUCE 函数,可以直接将函数式编程范式引入到 Excel 的公式中。能够将函数式的折叠(Reduce)转换为 Excel 上直观可见的汇总,这一点非常有趣,并且戏剧性地提高了数组处理的自由度。

在 Windows 或 Office 中的用途

【计划在 Windows 环境下验证】 在 Microsoft 365 环境的 Excel(Windows 版及 Mac 版)中,REDUCE 函数有助于提高日常数据处理的效率。例如,在对从 CSV 文件或外部数据导入的扁平表格式数据进行伴随自定义条件判断的汇总时非常方便。无需使用 VBA 或外部脚本语言,只需配置公式单元格即可通过单行代码实现高级的累积计算、条件计数或乘法汇总等功能,因此有望在动态报表制作和数据分析现场得到应用。

本次尝试的内容

本文将以第一手资料中记载的 REDUCE 函数的基本规范和使用示例为基础,整理如何表达按类别汇总以及自定义条件的适用。具体而言,将对比使用 REDUCE 函数的公式方法、数据透视表以及使用 PowerShell 的脚本处理方法这三者的概念,并探讨各自的特性。

实验步骤

  1. 准备 Microsoft 365 的 Excel 环境(【计划在 Windows 环境下验证】)。

  2. 在工作表上布置第一手资料中显示的示例数据(单元格范围或表格结构)。

  3. 在特定单元格中输入利用 REDUCE 函数的公式,并等待计算结果输出。

  4. 作为对比,设想对相同的数据结构使用 PowerShell 脚本或标准汇总功能时的处理流程。

代码和命令

以下是基于第一手资料的 REDUCE 函数语法及示例公式。

=REDUCE([initial_value], array, lambda(accumulator, value, body))

作为二次计算示例,这是一个将数组内的数值求平方后相加的公式示例。

=REDUCE(, A1:C2, LAMBDA(a,b,a+b^2))

这是一个仅将大于特定值的元素相乘的自定义汇总示例。

=REDUCE(1,Table3[nums],LAMBDA(a,b,IF(b>50,a*b,a)))

这是一个仅对偶数进行计数的条件汇总示例。

=REDUCE(0,Table4[Nums],LAMBDA(a,n,IF(ISEVEN(n),1+a, a)))

确认的结果

【实机验证前】

  • 在正确编写了 REDUCE 函数的单元格中,预计会返回从初始值开始、按照 LAMBDA 内的条件依次累积的结果。

  • 如果参数或 LAMBDA 的参数数量不正确,预计会像第一手资料中所记载的那样发生 #VALUE! 错误(无效参数错误)。

  • 请实际进行确认。

了解到的内容

由于尚未进行实机验证,因此无法展示实际的屏幕渲染或准确的计算时间,但从第一手资料中确认的范围内可以明确:REDUCE 函数由初始值、数组和 LAMBDA 这三个要素组成,其规范是依次处理数组的每个元素并返回累积值。此外,从第一手资料中还可以确认一些重要的操作注意事项,例如省略初始值时将自动使用数组的第一个值作为起始值,以及在进行乘法运算时需要将初始值指定为 1 而不是 0。

实际使用上的注意点

  • 本文处理的公式面向 Microsoft 365 环境的 Excel,在旧版本的 Excel 中可能无法使用。

  • 如果 LAMBDA 函数内的参数指定或参数数量不一致,将会报错。

  • 针对大规模数组应用复杂的 LAMBDA 可能会影响计算性能,具体取决于运行环境。请在实机上对实际运行情况进行充分验证。

参考信息

  • source_title: REDUCE function

  • source_url: https://support.microsoft.com/en-us/office/reduce-function-42e39910-b345-45f3-84b8-0642b568b7cb

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

标题和URL已复制