问题标签 [array-formulas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1122 浏览

c# - 无法在 C# 中为选定的 Excel Range 对象分配 FormulaArray

我的 C# 代码使用 Microsoft.Office.Interop.Excel 库操作 Excel 范围。我需要将公式数组分配给选定的范围。我尝试了网上推荐的各种方法,包括微软的推荐,但至今无法使其正常工作。

我观察到两个问题:

问题 1. 分配在表面上看起来很好:它没有失败,范围内的单元格对象显示分配的 .ArrayFormula 属性,每个单元格中的电子表格公式出现在大括号中。但是,公式数组实际上是不连贯的:范围内的每个单元格都可以单独更改,这是普通公式数组所不允许的。它的行为就好像每个单元格都有自己的单单元格公式数组,独立于其他单元格。不管我尽了最大的努力,情况总是如此。这个问题实际上有一个正常工作的解决方案吗?

问题 2。我的数组公式包含对另一个范围(范围 A)的引用,我需要在 R1C1 样式中引用它。我需要目标范围中的每个单元格中的数组公式都指向同一个范围 A。不知何故,我总是最终目标范围中的每个单元格都有自己的公式版本,指的是移动的“范围 A”区域。无论单元格如何,如何使参考保持在原位?

NB 您可能认为问题 2 导致了问题 1,但事实并非如此:例如,当数组公式很简单时,如“=SIN(1)”,问题 1 仍然会发生。

我真的很感激任何可行的建议。提前非常感谢。

0 投票
2 回答
58122 浏览

google-sheets - 让 Google 电子表格公式无限重复

好的,所以我有一个将信息转储到电子表格中的 Google 表单。在每一行上,我都需要完成一个简单的计算。问题是我不知道如何让它在添加新行时在每个新行上重复一个公式。

是的,我知道如何使用填充句柄来复制公式,但我希望它自动添加公式,而不是我手动复制它。

例如,这用于跟踪时间,因此每行都有一个用于In Time的单元格和一个用于Out Time的单元格。我想要一个名为Time Spent的列,它将从 out time 中减去他们的 in time 以确定他们花费了多少时间。但是由于行数是无限的,因此我进入并复制公式是不切实际的。

如果有人有任何想法,我将不胜感激。我已经四处寻找很久了,我所能找到的只是人们说要使用填充手柄手动复制公式,这不是我想要的。

0 投票
2 回答
11519 浏览

excel - 将 MATCH() 函数与未排序列表一起使用

我在使用 MATCH() 函数的电子表格公式时遇到问题。

这是具有特定问题的单元格中的公式。我正在使用 match 来查看水平范围的数据并确定哪一列包含最近的更改,但“完成”列有日期,而“保留”列有日期时除外。单元格 Y1 包含=TODAY(),因此它会根据今天的日期检查每个单元格。单元格被格式化为日期,并作为日期从左到右输入。但是,这些条目可以从较早的列重新开始,并且使日期不按顺序排列。

问题是,一次仅出现几次,MATCH()将返回一个不是最新的列。据我所知,以及它对这个公式的其他实例的工作原理是它从右到左读取数组并在第一个“最高”日期停止。

该错误专门发生在一行上,而预期结果在工作表的其他地方多次起作用。

MATCH()假设它每次都会朝某个方向阅读,我是不是用错了?代码中是否存在其他错误?或者有没有不同的方法来获得我为它编程的结果?

0 投票
1 回答
1656 浏览

excel - Excel 公式:将多个范围合并为 1 个函数参数

我有四个动态范围,分别称为ADateALeadTimeBDateBLeadTime(两对)和一个名为MyDate.

使用数组公式,我可以很容易地找到LeadTime基于给定一周内两个不同范围的联合的平均值,例如

这很好用,因为它AVERAGE接受可变数量的参数。但是,如果我想使用不同的函数,例如PERCENTILE只接受一个参数,这是行不通的。

如何将两个范围合并为一个?我知道 VBA,Application.Union但没有 VBA,谢谢。我一直在玩弄类似的东西

没有任何运气。

0 投票
1 回答
43 浏览

excel - 从数组中赋值

如果我定义: A1 = {1,2,3}然后按回车,我有 A1 = 1

我如何也可以分配2给 B2 和3C3?

0 投票
1 回答
319 浏览

datetime - 如何警告重复值组合

我正在尝试在 Google 电子表格中创建以下警告:当我在列Name和中添加Date已经存在的值的组合时,Result我应该在列中收到消息Duplicate date

这是一个例子:

如果存在重复项Date,我知道如何通过将 ColumnC 单元格文本“日期”更改为该消息来发出“警告”,但我不知道如何配对NameDate值。我用这个=IF:

=IF(COUNTA(B2:B)>COUNTA(UNIQUE(B2:B));"Duplicate date";"Date")

0 投票
1 回答
4726 浏览

excel - 无法在数组公式中实现 INDIRECT()

我有一个名为Finder的工作表,我在其中创建了一个用于在其他工作表中搜索的工具(名为 #1、#2 等)。我遇到的问题是在某些情况下我无法使用 INDIRECT 功能,如下所述:

概念形式:

我需要在另一张纸上解决一个范围,如下所示:

没关系,但我不能使用 INDIRECT 使公式动态:

提前致谢


更新:

查找表

Finder 工具包含许多单元格。图片显示了为什么我需要使用ROW()函数获取工作表名称。

更新 2:

#1 表

Finder 表中的组合框有四个项目并使用 $B$4 单元格:

    1- 近似搜索
    2-精确搜索
    3- 完整索引
    4- 特定类别

这是公式的完整代码:

0 投票
1 回答
42 浏览

excel - 如何计算返回 true 的特定条件的最大系列

我有一个小问题来计算第三列大于第二列的最大频率。这只是一个带有分数的统计数据。问题是我想把它放在一个没有宏的公式中。

我试过了:

我希望它能为我提供最长的系列,其中一列中的值大于另一列中的值,但我失败了......

0 投票
2 回答
267 浏览

excel - 查找公式效果很好,除了一列

我有一个已上传到此处的 excel 文件

除了具有降序值的列之外,该公式效果很好。

让我解释一下excel文件。

我有一张主表“报告”,另外 4 张对应于 4 个年龄组。- 4.2.0 至 4.7.30、4.8.0 至 5.1.30、5.2.0 至 5.7.30 和 5.8.0 至 6.1.30。根据“报告”表中的年龄 (B5),我选择 4 张表中的一张以从中选择值。我使用包含所有工作表名称并在工作表“报告”中从 A24 到 B27 定义的表名TblA选择正确的工作表。

在上传的样本表中,B5 包含值 5.7,这意味着我们必须选择表 5.2.0 到 5.7.30。

现在从工作表 5.2.0 到 5.7.30,我必须为在“报告”中输入的每个原始分数寻找各自的标准分数(第一列)。

以下是步骤:

A. 在表格“报告”C7 到 C15 中输入原始分数

B. 根据年龄(B5 单元格)搜索相应的工作表,在我们的例子中是 5.2.0 到 5.7.30,因为年龄是 5.7

C. 通过选择 4 张表中的相应列,从原始分数中填充标准分数。例如,如果 Col1 的原始分数是 25 (C7),则从 5.2.0 到 5.7.30 中选择 Col1 的标准分数并进入 D7 等等。

D. 这样所有的标准分数都填写在 D7 到 D15 中。

除了“报告”表中的D13之外,该公式效果很好,因为如果您在 5.2.0 到 5.7.30 中观察 ColD,它是按降序排列的。

如何更改公式以适应这个独特的列?

0 投票
1 回答
145 浏览

google-sheets - 使用 countif 将唯一术语相加,但前提是同一行中的唯一数据如此说明

我正在使用我发现的一些公式制作数据图表,将两列中的唯一数据相加并将它们返回到一列,然后计算这些唯一项目出现的次数。它看起来像这样。

=ArrayFormula(唯一(转置(拆分(连接(C3:C151&char(9),D3:D151&char(9)),char(9)))))

=COUNTIF($C$3:$D$151;A166)

但是,现在我只希望它首先检查同一行中它旁边的列的单元格,如果该单元格具有出现在那里的 5 个唯一术语中的两个,则它计算唯一术语。

我如何将此条件添加到计数中?

编辑:由一个名叫 Yogi Anand 的人解决。

=ArrayFormula(sum((C3:D151=A170)*((F3:F151="Baby")+(F3:F151="Basic"))))