我有一个 Excel 格式的银行交易导出列表,我想尽可能快速、简单地对其进行分类。我怀疑仅使用数组公式就可以做到这一点,但 VBA 函数同样有用。
场景
我的电子表格标题如下所示:
| A | B | C | D |
==========================================
| Date | Description | Amount | Category |
------------------------------------------
Run Code Online (Sandbox Code Playgroud)
日期、描述和金额均由我的银行预先填写。我在 D 列中填写每笔交易的类别。
这很好,但很耗时,因为每个类别都必须单独手动输入。
需求
我希望根据动态生成和应用的规则,在我未输入手动类别的行中自动填充类别。
我想要的输出如下所示:
| A | B | C | D | E | F |
==============================================================================
| Date | Description | Amount | Manual cat. | Rule | Auto cat. |
------------------------------------------------------------------------------
| 04/08/12 | Starbucks NYC | -$5.42 | Coffee | starbucks | Coffee |
| 04/09/12 …Run Code Online (Sandbox Code Playgroud) 我正在 Excel 中寻找一种简单的方法来计算不同值的单位。我有几个值的列表KB,MB和GB我想在一个计算的输出GB。
这是列表的一部分:
66.0 MB
570 KB
1.10 GB
2.21 KB
Run Code Online (Sandbox Code Playgroud)
输出: ???GB。
所有值都在同一行 (C) 中,值后面有 B/KB/MB/GB。
我在看起来很普遍的要求上遇到了麻烦:合并先前行的数组公式计算。问题似乎是数组公式中的所有单元都被立即求值,因此它认为存在循环依赖关系,并给出该错误。
我在Google Spreadsheet上模拟了一个玩具示例,您应该可以看到并对其进行评论。(我不允许编辑访问以防止故意破坏。)
它看起来像这样,这里的一切是行2,和子弹1,2,3,4引用列A,B,C,D分别为:
=ARRAYFORMULA(IF(ROW(B2:B)>2, OFFSET(D2:D, -1, 0) + A2:A,))=ARRAYFORMULA(IF(ROW(D2:D)=2, 0, B2:B*(1+C2:C)))想法是在每行上设置利率复合(利率可能可变)和正/负资本变动的选项,但是,单元格B2和D2(点2、4)错误#REF,并且在悬停时报告“循环依赖” 。
我用尽了一切我能想到的:OFFSET,INDIRECT,D1:D(代替2),连一个助手列什么也不做,而是指的前一行D(只是造成了三列循环依赖代替)。
我怎么有'前。兴趣”列引用数组公式中前一行的“余额”列,而不会导致此错误?
类似的问题可以SUMIF通过在行数小于数组公式中“当前”行的条件下解决。我看不到这对我来说可行,因为我需要将每一步的总和乘以利息。我试图SUMIF(... "="&DATE(...) ...)引用上一行。这可以在帮助程序列中显示偏移余额,但是尝试使用它(在下面进行迭代计算)的行为就像是零。
在@JackBrown的建议下,我启用了消除循环依赖项错误的迭代计算,但是它仍然不起作用- 0尽管上一行具有非零值,但第二填充行从上一行获取值。好像它是在早期迭代中获取值,而没有在更改时进行更新。
在我的电子表格中,我有一个正在运行的脚本,该脚本将该getLastRow()函数用作其逻辑的重要组成部分。
自从我在其中一列中应用了数组公式后,该getLastRow()函数就无法正常工作。即使其他列中没有其他值,数组公式似乎一直“应用”到工作表的底部,因此getLastRow()返回有数组公式的最后一行,而不是实际的非- 空行。
编写一个检查哪些单元格为空的慢速函数对我来说不是一个选择,因为脚本在运行这样的事情时会用完(它有数万行)。
有没有人对解决方法有任何建议?
这是ARRAYFORMULA:
=ArrayFormula(IF(A2:A="",,WEEKNUM(A2:A, 2)))
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用查询来显示多个 Google 表格中的数据。我每周都会制作一个具有特定工作表名称的新工作表,例如Week of 01/13,Week of 01/06等等。
以下是我的想法产生的地方以供参考:
我有一个正在使用的汇总表
COUNTA(INDIRECT("'" & A5 & "'!E4:E",true)A5 是连接日期和单词以复制工作表名称的单元格。
汇总表上的行直到
B5<=today()因此,我可以将其设置为忘记它,并且随着时间的推移,工作表将继续为我提供每周数据,并保持工作表清洁,直到一周结束。
长话短说,我有一个我使用的查询,它使用特定参数为我提供了我需要的所有数据,但我必须每周使用新的工作表名称手动更新数据语法数组。
=QUERY({'Week of 01/13'!A:P;'Week of 01/06'!A:P;'Week of 12/30'!A:P;'Week of 12/23'!A:P;'WEEK OF 12/16'!A:P;'WEEK OF 12/09'!A:P;'WEEK OF 12/02'!A:P;'WEEK OF 11/25'!A:P;'WEEK OF 11/18'!A:P;'WEEK OF 11/11'!A:P;'WEEK OF 11/04'!A:P;'WEEK OF 10/28'!A:P;'WEEK OF 10/21'!A:P;'WEEK OF 10/14'!A:P;'WEEK OF 10/07'!A:P;'WEEK OF 09/30'!A:P;'WEEK OF 09/23'!A:P;'WEEK OF 09/16'!A:P;'WEEK OF 09/09'!A:P;'WEEK OF 09/02'!A:P},
"Select * where Col11 = 'RD' order by Col2 desc",0)
Run Code Online (Sandbox Code Playgroud)
我想构建一个对数组的引用,该数组将根据日期自动填充连接。
使用下面的代码我可以让连接给我我需要的数组,
=if(H4<=today(),CONCATENATE("'",H$1,text(H4,"mm/dd"),"'!A:P;",),"")
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将它输入到查询函数中时,它只返回连接的文本:
=QUERY(I1,"Select …Run Code Online (Sandbox Code Playgroud) google-sheets google-apps-script array-formulas google-sheets-query google-sheets-formula
我正在尝试使用 Google Sheets 中的 ArrayFormula 函数应用于=$V$1整个 V 列(从 V3 开始)。
我已=ArrayFormula($V$1)在单元格 V3 中写入,但这不会填充整个列。
我究竟做错了什么?
arrays if-statement google-sheets array-formulas google-sheets-formula
我正在使用IMPORTDATA公式来填充 CSV 文件。我遇到错误。
文件大小为 8MB,所以我认为这可能是问题所在,因为我以前使用过这个公式,没有任何问题,我是否有其他方法可以将此数据填充到工作表中?
这是我正在使用的公式:
=IMPORTDATA("URL.csv")
Run Code Online (Sandbox Code Playgroud)
我希望上传整个文件,但遇到错误消息:
错误 URL 内容中的资源超出了最大大小。
google-sheets array-formulas google-sheets-query google-sheets-formula
我已将 JSON 数据导入到我的工作表中。我想对导入的数据使用诸如=STDEV和 之类的函数,但如果这样做,我就会不断收到错误。我能做什么来解决这个问题?=AVERAGE#div/0
json average google-sheets array-formulas google-sheets-formula

所以我试图填写 Google 表格中两个单元格之间的数字。我从 270 开始,在列中出现几个不确定且变化的空单元格后,我需要达到 180。我需要均匀地填充它们之间的单元格。但如何呢?
arrays autofill google-sheets array-formulas google-sheets-formula
我正在寻找一种解决方案来查找列中的最后一个非空单元格。
我在Google Docs Editor Help 中找到了以下解决方案
INDEX(C:C;MAX(ROW(C:C)*(C:C<>""))
这个解决方案工作得非常好,甚至可以使用空单元格和标题 - 但我不知道它是如何工作的。我试图通过将其分解成各个部分并分别查看返回值来分析该建议 - 但随后我无法重现所需的结果。
有人可以解释发生了什么吗?我显然错过了一些东西。
array-formulas ×10
arrays ×3
excel ×3
autofill ×1
average ×1
excel-2013 ×1
if-statement ×1
json ×1