我试图计算当基数(在时间 1)可以为负并且结果数为正(在时间 2)时的百分比变化。
我的问题是百分比从 -4 到 +4 变化。
从 +4 到 -4 的变化报告返回 -200% 的变化。然而,相同的公式A1/B1-1当A1等于-4和B2等于时4也报告为-200%,但它应该是增加200%。
ABS功能并不能解决这个问题。有人为此设计过修复程序吗?
microsoft-excel-2007 worksheet-function microsoft-excel microsoft-excel-2010
我有目录树布局的数据(见图)
基本上我想使用一个查找代码作为参考点,并让 Excel 在相应的列中向上查找以显示“父目录”。
目前,我有一个索引可以准确地告诉我什么代码是什么,但我想设置一个查找工具(请参见下图中的下表),它可以一次显示所有级别。在图片中,我使用公式输入了要返回的值。
因此,如果我输入 4 级代码,我想使用返回 4、3、2 和 1 级程序的公式。对于 3 级代码,我希望它查找返回 3、2 和 1 级程序。
有10,000+行数据。
对我来说似乎很简单......从这一行开始,在这一列中向上查找,直到达到一个值......但似乎并不那么简单。
任何帮助/提示将不胜感激!
-亚历克斯
lookup worksheet-function microsoft-excel microsoft-excel-2013
我想将具有相对引用的公式复制到另一个范围,而不更改公式/更新这些相对引用。我知道有一些付费附加组件可以做到这一点,但我不想为了这么简单的事情而给人们钱。
示例:
A1 包含=C2+B3 (并且正在运行/解析)
将 A1 复制到 X1
X1 现在包含 =C2+B3 (并且正在运行/解析)
我这样做,然后通过替换和其他方式稍微修改公式的新副本。(所以我需要它们的功能而不是粘贴特殊的链接)
目前,我只是替换=为x=,复制/粘贴,然后替换x=为=。多年来我看到人们通过本机 XLS 功能使用更奇特的方式,但我不知道如何使用。我需要同时对数百个不同的公式执行此操作,因此单独复制/粘贴每个公式的公式是行不通的。
/// 还有一个不完整的解决方案需要弄清楚:
将单元格格式更改为文本。现在输入=A1您只得到文本。将格式更改回常规格式并不能解析公式。我们如何解析这些数组以再次开始作为公式工作,而不仅仅是文本?(除了进入每一个并按回车键)
...(对于任何好奇的 Kutools 插件都会这样做 - 完全相同的副本)
我的伯爵与文本中的“<”混淆了,我猜它采用了它的字面意思......有什么办法吗?
=COUNTIF(AG3:AG8,"<$10000")
Run Code Online (Sandbox Code Playgroud)
我有两张工作表“数据”和“主要”,其中“数据”电子表格从外部源读取并自动更新。现在设置“主要”,以便每个单元格引用“数据”表中的相应单元格,即“主要”中的 A1 读取=IF(data!A1<>0, data!A1, ""),并且我已将这些公式向下扩展到 A 列。
问题在于,当“数据”表从其外部数据源读取时,它可以更改大小,最终会更改“主”表中的某些单元格引用。因此,我理想地想要一个满足以下条件的设置:
main!A1 = IF(data!$A$1<>0, data!$A$1, "")main!A2 = IF(data!$A$2<>0, data!$A$2, "")main!A3 = IF(data!$A$3<>0, data!$A$3, "")但是,一旦我在公式中引入绝对引用,自动填充似乎不再起作用。无论如何我可以改变它的运作方式,以便我可以让自动填充工作吗?理想情况下,我不想使用宏/VBA 来解决这个问题。
谁能解释为什么我在许多 Excel 电子表格的许多公式中看到“@”符号出现,而以前没有出现过?
它们不是@提及,或结构化参考或表格公式使用的一部分,也不是任何其他常见的嫌疑人。
(注意:系统信息在本文末尾)
正如我所说,它们不是@mentions,我没有使用结构化引用。此外,我不是也从来不是 Lotus 用户,所以我不会像那些人有时似乎是硬连接那样将@ 符号推入公式中。事实上,除了作为 TEST() 的偶尔格式代码的一部分之外,我想不出我曾经在公式中使用过 @ 的任何时间,这也不是这里发生的事情。
这是一个例子(随机抓取)。这个:
=IFS(DX$33="","",ISNUMBER(MATCH(DX$33,$AJ$33:$DR$33,0)),HLOOKUP(DX$33,$AJ$33:$DR$1033,ROWS(DX$33:DX36) )+1,0),真,0)
现在看起来像这样:
=@IFS(DX$33="","",ISNUMBER(MATCH(DX$33,$AJ$33:$DR$33,0)),HLOOKUP(DX$33,$AJ$33:$DR$1033,@ROWS(DX$33) :DX36)+1,0),TRUE,0)
正如我所说,这只是一个随机的例子。还有更多,其中很多都没有 IFS() 那样的“异国情调”,所以我认为这不是原因。
现在在上面我说“看起来像”,因为我想神秘的@ 可能实际上并不在文件本身中,而只是由 Excel 显示。我这么说是因为我至少有一个文件,我可以从它的 DropBox 版本历史中看到只有一个版本——我的(@-free)原版。所以它开始时没有 @ 符号,并且没有改变(根据 DropBox 版本),但我现在可以看到 @ 符号。一种解释是更改的是 Excel,而不是我的文件,因此更改只是显示工件。哦,删除@ 似乎对公式没有影响。
另一方面,对于笑容,我尝试创建一个全新的公式:
=@A1
当我尝试输入时,Excel 警告我“某些较旧版本的 Excel 不支持此公式”并建议我将其替换为以下变体:
=A1
所以@@的这种使用似乎是一件真实的事情,而且并不总是存在。(这显然适用于在行引用中与 [] 结合使用,但这不是这个(是吗!?))
无论如何,为了回应 Excel 询问我是否想让它删除@,我把谨慎抛诸脑后,我点击了“注意你自己的事!” (又名“不”)。Excel 必须插入我原来的 @-ified 版本,从我所见,它很好,并且表现得与 Excel 试图说服我使用的 @-free 版本完全一样。
任何人都可以解释这一切吗?是否有最近的 Excel 更新引入了新的 @ 语法?最近我的意思是在过去 2-3 个月内最多。我有我在 12 月中下旬创建的文件,我知道当时是 @-free 的,现在已经变成了 @-ified。但如果是这样,那么为什么 Excel 只是在不问我的情况下随意更改文件,特别是考虑到它自己承认可能会产生向后兼容性问题的事实?为什么我有一个 …
我需要在包含“1”的行中找到最右边的单元格,然后将包含数据的单元格数量返回到左侧。数据将始终为“1”或“0”并将被填充。
或者,它可以被视为尝试从左侧开始计算单元格的数量,直到遇到最后一个“1”。
在我的示例中,我尝试使用公式填充单元格 B9:B13。
任何帮助将不胜感激!
在 Excel 中,我希望通过另一列(状态)中的值对一列(ID)中的值进行细分。
| ID | Status |
|----|----------|
| 1 | Complete |
| 2 | Active |
| 3 | New |
| 4 | New |
| 5 | New |
| 6 | Complete |
Run Code Online (Sandbox Code Playgroud)
| Status | IDs |
|----------|---------|
| Complete | 1, 6 |
| Active | 2 |
| New | 3, 4, 5 |
Run Code Online (Sandbox Code Playgroud)
在 Google 表格中,您可以使用、 和执行此操作JOIN,如下所示:FILTERUNIQUE
生成唯一状态
过滤和连接结果
我不能使用数据透视表,因为我想要单个值的完整列表,而不是任何聚合指标。
我不确定这是否可以通过 …
worksheet-function microsoft-excel office365 microsoft-excel-2019
我正在尝试从单个输入中获取绝对范围地址。像这样的东西。
Formula
=SOME.MAGIC(A1:B10)
Output (string)
"$A$1:$B$10"
Run Code Online (Sandbox Code Playgroud)
我能够得到这个结果,但使用以下(数组)公式非常复杂的方法。
{=ADDRESS(MIN(ROW(A1:B10)),MIN(COLUMN(A1:B10)),1,1)&":"&ADDRESS(MAX(ROW(A1:B10)),MAX(COLUMN(A1:B10)),1,1)}
Run Code Online (Sandbox Code Playgroud)
其中(如您所见)字符串A1:B10使用了四次。
我的另一个尝试是使用 function FORMULATEXT。范围的链接只存在一次,但使用多一个单元格是一种令人讨厌的解决方法,并且仅适用于相对地址相对较好。它不适用于命名范围。
C1=$A$1:$B$10
C2=MID(FORMULATEXT(C1),2,LEN(FORMULATEXT(C1))-1) //Returns string "$A$1:$B$10" ?
But
C1=A1:B10
C2=MID(FORMULATEXT(C1),2,LEN(FORMULATEXT(C1))-1) //Returns string "A1:B10" ?
And
C1=Named_range
C2=MID(FORMULATEXT(C1),2,LEN(FORMULATEXT(C1))-1) //Returns string "Named_range" ?
Run Code Online (Sandbox Code Playgroud)
下一步是尝试 1+2 的组合。它有效,但我对此并不满意。
C1=A1:B10
C2=MID(FORMULATEXT(C1),2,LEN(FORMULATEXT(C1))-1)
C3{=ADDRESS(MIN(ROW(INDIRECT(C2))),MIN(COLUMN(INDIRECT(C2))),1,1)&":"&ADDRESS(MAX(ROW(INDIRECT(C2))),MAX(COLUMN(INDIRECT(C2))),1,1)}
Run Code Online (Sandbox Code Playgroud)
是否有更简单的方法(不太复杂的公式)具有相同的输出?
给定下表,我想找到满足输入x值和给定容差的最高标头编号(由 中 的值J4表示)和伴随的行索引(由 中y的值表示J5):I2J2
正如您所看到的,表中有两个值满足输入值和容差:cellsF3和G3。然而,由于 中的标题行号G2(48) 高于F2(44),因此我们将作为最终解决方案,并打印出和G3中各自的数字。J4J5
我有一个解决方案,使用具有绝对值的中间矩阵并减去输入值。G然后在一个冗长的公式中使用 IF 和 SMALL向后遍历每一行B(非常有限且相当硬编码)。
我的愿望是使用现代 Excel 函数(LAMBDA、MAP 等)将该表转换为记录列表,然后简单地输出相应的值。本质上,将表转换为内存中的记录结构,而工作表中没有中间矩阵,如下所示(G2、G3和 的转换示例E7):
List<Record> vals = [
(36.22, 48, 1),
(69.31, 48, 2),
...
(169.99, 40, 6),
...
]
Run Code Online (Sandbox Code Playgroud)
使用此结构,可以更轻松地找到输入值和容差范围内的第一个值,并输出 x和 yvals.[field1]的相应列表条目。vals.[field2]vals.[field3]
使用现代 Excel 函数和内存计算可以优雅地完成此操作吗?
输入数据可以在这里找到: https: //pastebin.com/JRaA14e8
| 28 | 32 | 36 … |
|---|