标签: worksheet-function

当基数为负数时计算百分比的任何技巧

我试图计算当基数(在时间 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

5
推荐指数
1
解决办法
4万
查看次数

如何从指定单元格向上索引匹配直到非空白

我有目录树布局的数据(见图)

基本上我想使用一个查找代码作为参考点,并让 Excel 在相应的列中向上查找以显示“父目录”。

目前,我有一个索引可以准确地告诉我什么代码是什么,但我想设置一个查找工具(请参见下图中的下表),它可以一次显示所有级别。在图片中,我使用公式输入了要返回的值。

因此,如果我输入 4 级代码,我想使用返回 4、3、2 和 1 级程序的公式。对于 3 级代码,我希望它查找返回 3、2 和 1 级程序。

有10,000+行数据。

在此输入图像描述

对我来说似乎很简单......从这一行开始,在这一列中向上查找,直到达到一个值......但似乎并不那么简单。

任何帮助/提示将不胜感激!

-亚历克斯

lookup worksheet-function microsoft-excel microsoft-excel-2013

5
推荐指数
1
解决办法
8755
查看次数

如何原样复制多个相对公式?

我想将具有相对引用的公式复制到另一个范围,而不更改公式/更新这些相对引用。我知道有一些付费附加组件可以做到这一点,但我不想为了这么简单的事情而给人们钱。

示例:
A1 包含=C2+B3 (并且正在运行/解析)

将 A1 复制到 X1
X1 现在包含 =C2+B3 (并且正在运行/解析)

我这样做,然后通过替换和其他方式稍微修改公式的新副本。(所以我需要它们的功能而不是粘贴特殊的链接)

目前,我只是替换=为x=,复制/粘贴,然后替换x=为=。多年来我看到人们通过本机 XLS 功能使用更奇特的方式,但我不知道如何使用。我需要同时对数百个不同的公式执行此操作,因此单独复制/粘贴每个公式的公式是行不通的。

/// 还有一个不完整的解决方案需要弄清楚:

将单元格格式更改为文本。现在输入=A1您只得到文本。将格式更改回常规格式并不能解析公式。我们如何解析这些数组以再次开始作为公式工作,而不仅仅是文本?(除了进入每一个并按回车键)

...(对于任何好奇的 Kutools 插件都会这样做 - 完全相同的副本)

worksheet-function microsoft-excel

5
推荐指数
1
解决办法
6514
查看次数

COUNTIFS - 如何将文本与 < 和 > 字符匹配

我的伯爵与文本中的“<”混淆了,我猜它采用了它的字面意思......有什么办法吗?

=COUNTIF(AG3:AG8,"<$10000")
Run Code Online (Sandbox Code Playgroud)

Countifs 失败

worksheet-function microsoft-excel

5
推荐指数
1
解决办法
539
查看次数

如何使用绝对公式相对自动填充 Excel 单元格

我有两张工作表“数据”和“主要”,其中“数据”电子表格从外部源读取并自动更新。现在设置“主要”,以便每个单元格引用“数据”表中的相应单元格,即“主要”中的 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 来解决这个问题。

worksheet-function microsoft-excel excel-auto-fill

5
推荐指数
1
解决办法
380
查看次数

为什么我的 Excel 公式中突然出现“@”(“at”)符号?

简而言之

谁能解释为什么我在许多 Excel 电子表格的许多公式中看到“@”符号出现,而以前没有出现过?

它们不是@提及,或结构化参考或表格公式使用的一部分,也不是任何其他常见的嫌疑人。

TL;博士详细信息

(注意:系统信息在本文末尾)

正如我所说,它们不是@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 只是在不问我的情况下随意更改文件,特别是考虑到它自己承认可能会产生向后兼容性问题的事实?为什么我有一个 …

worksheet-function microsoft-excel macos

5
推荐指数
1
解决办法
2970
查看次数

找到最右边的特定值并将单元格计数返回到左边

我需要在包含“1”的行中找到最右边的单元格,然后将包含数据的单元格数量返回到左侧。数据将始终为“1”或“0”并将被填充。

或者,它可以被视为尝试从左侧开始计算单元格的数量,直到遇到最后一个“1”。

在我的示例中,我尝试使用公式填充单元格 B9:B13。

任何帮助将不胜感激!

例子

worksheet-function microsoft-excel

5
推荐指数
1
解决办法
311
查看次数

Excel - 基于另一列的列表实时过滤器?

在 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 表格解决方法

在 Google 表格中,您可以使用、 和执行此操作JOIN,如下所示:FILTERUNIQUE

生成唯一状态

生成唯一状态

过滤和连接结果

过滤和连接结果

其他解决方法

我不能使用数据透视表,因为我想要单个值的完整列表,而不是任何聚合指标。

我不确定这是否可以通过 …

worksheet-function microsoft-excel office365 microsoft-excel-2019

5
推荐指数
1
解决办法
647
查看次数

Excel:从单个输入获取范围地址(寻找紧凑的公式)

我正在尝试从单个输入中获取绝对范围地址。像这样的东西。

Formula
=SOME.MAGIC(A1:B10)

Output (string)
"$A$1:$B$10"
Run Code Online (Sandbox Code Playgroud)

尝试 1

我能够得到这个结果,但使用以下(数组)公式非常复杂的方法。

{=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使用了四次。

尝试 2

我的另一个尝试是使用 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)

尝试 3

下一步是尝试 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)

是否有更简单的方法(不太复杂的公式)具有相同的输出?

worksheet-function microsoft-excel microsoft-excel-2013

5
推荐指数
2
解决办法
404
查看次数

Excel:如何将表格转换为记录结构列表

给定下表,我想找到满足输入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 …

worksheet-function microsoft-excel

5
推荐指数
1
解决办法
1557
查看次数