如何用正数和负数来计算增长?

2024-01-26

我正在尝试用正数和负数计算 Excel 中的增长百分比。

This Year's value: 2434
Last Year's value: -2

我使用的公式是:

(This_Year - Last_Year) / Last_Year

=(2434 - -2) / -2

问题是我得到了负面结果。能否计算出大致的增长数字?如果可以,如何计算?


您可以尝试向上移动数字空间,以便它们都变为正值。

要计算任意两个正数或负数之间的增益,您必须将一只脚放在幅度增长的世界中,另一只脚放在体积增长的世界中。您可以倾向于一侧或另一侧,具体取决于您希望结果收益如何出现,并且每个选择都会产生后果。

Strategy

  1. 创建一个移位方程,生成相对于旧数和新数的正数。

  2. 将自定义班次添加到旧数字和新数字中以获得 new_shifted 和 old_shifted。

  3. 进行 (new_shifted - old_shifted) / old_shifted) 计算以获得增益。

例如:

old -> new
-50 -> 30               //Calculate a shift like (2*(50 + 30)) = 160

shifted_old -> shifted_new
110         ->  190

= (new-old)/old
= (190-110)/110 = 72.73%

如何选择移位功能

如果您的移位函数将数字向上移动得太远,例如向每个数字添加 10000,您总是会得到微小的增长/下降。但如果变化足够大,足以使两个数字都进入正值,那么在边缘情况下,您将出现增长/下降的剧烈波动。您需要拨入换档功能,以便它对您的特定应用程序有意义。这个问题没有完全正确的解决办法,必须先苦后甜。

将其添加到 Excel 中以查看数字和收益如何变化:

                           shift function
old new  abs_old  abs_new  2*abs(old)+abs(new)   shiftedold  shiftednew    gain
-50  30  50          30          160                110         190        72.73%
-50  40  50          40          180                130         220        69.23%
10   20  10          20          60                 70          80         14.29%
10   30  10          30          80                 90          110        22.22%
1    10  1           10          22                 23          32         39.13%
1    20  1           20          42                 43          62         44.19%
-10  10  10          10          40                 30          50         66.67%
-10  20  10          20          60                 50          80         60.00%
1    100  1          100         202                203         302        48.77%
1    1000 1          1000        2002               2003        3002       49.88%

增益百分比受数字大小的影响。上面的数字是一个不好的例子,是由原始移位函数产生的。

你必须问自己哪种生物的收获最多:

Evaluate the growth of critters A, B, C, and D:
A used to consume 0.01 units of energy and now consumes 10 units.
B used to consume 500 units and now consumes 700 units.
C used to consume -50 units (Producing units!) and now consumes 30 units.
D used to consume -0.01 units (Producing) and now consumes -30 units (producing).

在某些方面,可以说每种动物都以自己的方式成为最大的种植者。有些人说 B 是最好的种植者,其他人会说 D 是更大的收获。您必须自己决定哪个更好。

问题是,我们能否将这种对增长的直观感受映射成一个连续函数,告诉我们人类倾向于将什么视为“令人敬畏的增长”与“平庸的增长”。

成长是一件很神秘的事情

然后你必须考虑到小动物 B 可能比小动物 D 经历了更困难的时期。小动物 D 未来可能比其他小动物更有前景。它有一个优势!你如何衡量opportunity, difficulty, velocity and acceleration增长?为了能够预测未来,你需要对什么是“大本垒打”和“生产力的蹩脚进步”有一个直观的感受。

函数的一阶和二阶导数将为您提供“增长速度”和“增长加速度”。了解微积分方面的知识,它们非常重要。

哪个增长更多?是每分钟都在加速生长的生物,还是正在减慢生长的生物?高、低速度和高/低变化率怎么样?增长机会耗尽的概念又如何呢?成本效益分析以及利用机会的能力/能力。对抗性系统(你的成功来自于另一个人的失败)和零和游戏又如何呢?

有指数增长、线性增长。而且增长不可持续。成本效益分析并对数据拟合曲线。这个世界比我们想象的要奇怪得多。由于黑天鹅效应,绘制一条完美的数据线并不能告诉您接下来是哪个数据点。我建议所有人都听听这个关于增长的讲座,科罗拉多大学博尔德分校就增长、它是什么、它不是什么以及人类如何完全误解它进行了精彩的演讲。http://www.youtube.com/watch?v=u5iFESMAU58 http://www.youtube.com/watch?v=u5iFESMAU58

将一条线与热水的温度拟合,一旦你认为你已经拟合了一条曲线,黑天鹅就会发生,水就会沸腾。这种效应发生在我们整个宇宙中,而你的原始函数(新旧)/旧不会对你有帮助。

下面是 Java 代码,它在一个适合我的需要的简洁包中完成了上述大部分概念:

小动物的生长-(小动物可以是“无线电波”,“甲虫”,“油温”,“股票期权”,任何东西)。

public double evaluate_critter_growth_return_a_gain_percentage(
        double old_value, double new_value) throws Exception{
    
    double abs_old = Math.abs(old_value);
    double abs_new = Math.abs(new_value);

    //This is your shift function, fool around with it and see how
    //It changes.  Have a full battery of unit tests though before you fiddle.
    double biggest_absolute_value = (Math.max(abs_old, abs_new)+1)*2;
    
    if (new_value <= 0 || old_value <= 0){
        new_value = new_value + (biggest_absolute_value+1);
        old_value = old_value + (biggest_absolute_value+1);
    }
    
    if (old_value == 0 || new_value == 0){
        old_value+=1;
        new_value+=1;
    }
    
    if (old_value <= 0)
        throw new Exception("This should never happen.");
    
    if (new_value <= 0)
        throw new Exception("This should never happen.");
    
    
    return (new_value - old_value) / old_value;
    
    
}

Result

它的行为有点像人类对生物生长的本能感觉。当我们的银行账户从 -9000 到 -3000 时,我们说这比账户从 1000 到 2000 时有更好的增长。

1->2     (1.0)  should be bigger than   1->1 (0.0)
1->2     (1.0)  should be smaller than  1->4 (3.0)
0->1     (0.2)  should be smaller than  1->3 (2.0)
-5-> -3  (0.25) should be smaller than -5->-1 (0.5)
-5->1    (0.75) should be smaller than -5->5 (1.25)
100->200 (1.0)  should be the same as  10->20 (1.0)
-10->1   (0.84) should be smaller than -20->1 (0.91)
-10->10  (1.53) should be smaller than -20->20 (1.73)
-200->200 should not be in outer space (say more than 500%):(1.97)
handle edge case 1-> -4: (-0.41)
1-> -4:  (-0.42) should be bigger than 1-> -9:(-0.45)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用正数和负数来计算增长? 的相关文章

  • 变量的变化触发事件

    是否可以通过变量的更改来触发事件 例如 这将触发事件 Dim t As Integer Dim Fire As Boolean Private Sub Test t 0 Fire True IIf Fire t 1 t 2 End sub
  • 运行delphi客户端自动化程序后excel.exe保持加载状态的原因是什么?

    我编写了一个 Delphi 程序 该程序从单个 XLS 文件的多个不同电子表格中提取数据并将其合并到文本文件中以供以后处理 这是德尔福7console程序 最相关的代码片段的摘录将向您表明 显然 我的程序表现得相当好 或者至少达到了它需要的
  • 使用用户定义函数的 VBA 数据验证

    我有一个用户定义的函数 我想在自定义数据验证中使用它 我的函数工作正常 但是当我在数据验证中使用它时 每次都会出错 有代码 Public Function AlphaNumeric pValue As Boolean Dim LPos As
  • 如何从 500 个 .xls Excel 文件中的单元格中获取数据?

    我想问你如何从许多Excel中的几个确定的 并且总是相同的 单元格中获取数据 xls文件 即我有一个清单 xls文件位于一个文件夹中 每个文件内部都有相同的表 但具有不同的值 我想从以下位置获取数据A1 C2 E3从文件夹中的所有文件中提取
  • =MATCH() 等价于多维范围

    我有一个 Excel 工作表 其中单元格 A1 C20 INT RAND 10 这是我的数据范围 单元格 E1 1 E2 2 E3 3 等 这些是我试图找到的值 我设置单元格 F1 MATCH E1 A C 0 F2 MATCH E1 A
  • VBA - 填充自定义功能区下拉列表/列表框

    我无法填充下拉列表 列表框 原始代码来自 https exceloffthegrid com inserting a dynamic drop down in ribbon https exceloffthegrid com inserti
  • Excel - 确定排列的奇偶性

    我正在处理一个 Excel 工作表 需要确定大小数字的垂直数组的奇偶校验N 该数组包含来自的每个数字1 to N每一次正好一次 在这种情况下 奇偶校验被定义为将加扰数组转换为从小到大排序的数组所需的交换次数 例如 数组 3 1 2 4 具有
  • 如何在网页中显示嵌入的 Excel 文件?

    我想允许在网页中查看嵌入的 Excel 报告 有什么办法吗 我不想使用 ActiveX 或 OWC Office Web 组件 我只想从 Internet Explorer 应用程序打开现有文件 我不希望用户下载然后打开它 使用 ifram
  • 使用VBA复制垂直列并沿对角线粘贴

    我有一列数据 我们称之为 A 列 其中有 35 行数据 如何在此列上循环 然后将每个数据点粘贴到另一张工作表中 同时为每个循环循环增加列和行 换句话说 我寻求对角粘贴在第二张纸中 有没有一种简单的方法可以在 VBA 中执行此类操作 不要循环
  • 将范围内的每个值乘以常数,但跳过空白单元格

    我需要一个简单快速的解决方案 用于将范围内的所有值乘以 VBA 代码中的数值 我知道这个解决方案 将整个范围乘以值 https stackoverflow com questions 18990541 multiply entire ran
  • 在 Excel 表格中选择多列的代码

    我是 Excel VBA 新手 我需要修改我的代码 以便我能够进一步进行 我想在 Excel 表格中选择多个表格列 这是我的代码 Dim ws As Worksheet Dim tbl As ListObject Set ws Sheets
  • Excel 工作簿 - 从 C# 读取速度非常慢?

    正在尝试读取 Excel 工作簿 发现读取 3560 行 7 列的工作表需要很长时间 大约需要 1 分 17 秒 我所做的就是循环遍历整个工作表并将值存储在列表中 这是正常现象 还是我做错了什么 static void Main strin
  • 如何找到特定程序的安装目录?

    我已经成功地编写了一些用于工作的 VBA 宏 这些宏基本上创建了一个数据文件 将其提供给一个程序并对该程序的输出进行后处理 我的问题是程序安装路径是硬编码在宏中的 并且安装在我同事的计算机上可能会有所不同 我首先想到的是 我可以从每个人那里
  • VBA 完成 Internet 表单

    我正在寻找将 Excel 中的值放入网页的代码 Sub FillInternetForm Dim IE As Object Set IE CreateObject InternetExplorer Application IE naviga
  • 我可以获取VBA代码中的注释文本吗

    可以说我有以下内容 Public Sub Information TEST End Sub 有没有办法得到 TEST 结果 不知何故通过VBA 例如 在 PHP 中 有一个获取注释的好方法 这里有什么想法吗 编辑 应该有办法 因为像 MZ
  • VBA 中 AND 函数如何工作?

    如果这是一个愚蠢的问题 我很抱歉 但是 Excel VBA AND 函数是否检查其中的每个条件然后继续 或者在第一个 FALSE 条件处停止而不检查其他条件 我想知道出于优化目的 但到目前为止在网上没有找到任何相关信息 提前致谢 示例 如果
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • Excel 数字缩写格式

    这是我想要完成的任务 Value Display 1 1 11 11 111 111 1111 1 11k 11111 11 11k 111111 111 11k 1111111 1 11M 11111111 11 11M 11111111
  • 使用 OpenPyXL 迭代工作表和单元格,并使用包含的字符串更新单元格[重复]

    这个问题在这里已经有答案了 我想使用 OpenPyXL 来搜索工作簿 但我遇到了一些问题 希望有人可以帮助解决 以下是一些障碍 待办事项 我的工作表和单元格数量未知 我想搜索工作簿并将工作表名称放入数组中 我想循环遍历每个数组项并搜索包含特
  • 在VBA中初始化全局变量

    在 Excel 2003 中 如何声明全局变量并仅在打开工作簿时初始化它们一次 我有一些由几个宏使用的参数 基本上是输入文件的路径 目前 我的代码如下所示 global path1 path2 as string sub initPaths

随机推荐