问题标签 [excel-lambda]

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 投票
3 回答
102 浏览

excel - 在 Excel 中使用 LAMBDA 仅将第一个字母大写

为了只大写我使用的文本的第一个字母
=UPPER(LEFT(A1,1)) & LOWER(RIGHT(A1,LEN(A1)-1))

随着LAMBDAExcel 中函数的引入,如何从中创建自定义 lambda 函数?

0 投票
1 回答
373 浏览

excel - Excel - 我们如何使用 LAMBDA() 替换单元格中的多个字符或整个单词

冒着跑题的风险,我决定做一些问答,因为我对 MS 向 Excel365 引入的新功能感到非常兴奋;LAMBDA()功能。如果普遍认为这是题外话,请告诉我,我可以取消问答。

LAMBDA()函数基本上是您在 Excel 本身中创建自己的函数的方式。然后,您可以继续在整个工作簿中调用此函数。但是关于它的绝对伟大的事情(恕我直言)是它能够在函数内调用自己,因此是递归的!

SUBSTITUTE()如果必须交换多个字符,或者从某些字符甚至整个单词中清除字符串,我们都知道乏味的嵌套函数。所以问题是:我们如何避免这种情况并利用LAMBDA()我们的优势?

0 投票
1 回答
141 浏览

excel - 在 Excel 中使用 LAMBDA 递归将一组数字相加

我的工作表的单元格 I32 (123456789) 中有一组连续的数字。我想使用新的 LAMBDA 函数将每个数字添加九次迭代(使用递归)。单元格 L32 中的最终值应为 45。

我目前所拥有的会产生#VALUE!错误。我基于Microsoft Excel 博客=REPLACECHARS中显示的示例,其中从单元格中删除了无效字符。

公式:

0 投票
2 回答
259 浏览

excel - 使用 Excel 溢出范围作为递归 Lambda 函数的数据源

我编写了一个 ExcelLAMBDA函数,用于从字符串中提取数字。这是公式 get.numbers=LAMBDA(text,ntext,position,size,VALUE(LET(x,LEN(text),n,position,IF(n>x,ntext,get.numbers(text,IF(ISNUMBER(VALUE(MID(text,n,size))),ntext&MID(text,n,size),ntext),n+1,size)))))

当文本来自单个单元格范围时,该公式运行良好,例如A2,但如果您尝试在溢出范围 ( A2#) 上使用它,它会返回 #NUM!错误。我有另一个LAMBDA函数,它接受一个字符串并从另一个字符串中的特定位置获取一个字符。如果字符是数字,它会将字符连接到给定的字符串。我尝试在 get.numbers 函数中使用此函数,但它返回错误。

我的结论是

  1. Lambda 函数不能在递归 lambda 函数中使用
  2. 递归 Lambda 函数无法接受来自溢出范围的数据

有没有办法解决这个问题?

0 投票
1 回答
84 浏览

arrays - 使用 LAMBDA 递归函数从字符串中删除所有数字

我一直在关注Exceljet上的指南,了解如何创建一个LAMBDA从字符串中删除所有数字的递归函数。例如,A1B2C3D4E5 变为 ABCDE。

我唯一想要的不同是将包含字符省略的字符串存储在函数而不是单元格中。因此,我chars从开头的行中取出参数并使用该LET函数来存储字符串。

问题是我不断收到#VALUE!错误,无法找出原因。

0 投票
0 回答
38 浏览

excel - 为什么我的 Excel 公式返回“单元格包含 lambda 错误”?

我正在尝试按照本文中的 lambda 示例进行操作,我尝试在 中键入名称HEADA1并在 中键入公式=LAMBDA(str,IF(str="","error: HEAD of empty string", LEFT(str,1)))B1如下面的 GIF 所示。

拉姆达

我得到一个#CALC!错误。

这里似乎确实有一些我不知道的功能,正如我的公式中HEAD所识别的那样。B1但是,B5报告“无效单元格引用”错误:

错误

0 投票
1 回答
72 浏览

arrays - 如何在 Excel 公式中创建可变长度数组?

我正在使用新的 lambda 函数编写一个 SPLIT 函数,以基于分隔符递归地从文本字符串中提取项目。

问题是当我找到这些项目时,我需要在这些项目的内存中保留一个可变长度的列表,即随着我添加项目的长度增加的列表。

0 投票
1 回答
117 浏览

excel - 如何在不同项目中共享通用 LAMBDA 函数?

给定一个像这样的通用 LAMBDA-UNION-function:https ://stackoverflow.com/a/69861437/16578424 :

在多个项目中重用它的最佳方法是什么?

0 投票
2 回答
49 浏览

excel - 使用 Excel 的税级和批量折扣

现在是一月底,“纳税时间”的神奇感觉正在世界各地开始。一个常见的问题是根据一组税级和税率计算所欠税款。这也类似于根据数量和数量折扣价计算总订单成本。

我已经看到了一些基于此问题类型的旧问题/答案,但没有人将其视为一般功能,所以我想我会在这里发布一个。这个想法是创建一个通用解决方案,使用LET它可以在LAMBDA可用时包装。

美国联邦所得税税率 2021

因此,让我们以 2021 年美国联邦所得税表为例:

税率 单从 单到 户主 从 户主 已婚共同备案 来自 已婚共同申报 至 已婚分开申报 已婚分开报到
10% - 9,950 - 14,200 - 19,900 - 9,950
12% 9,951 40,525 14,201 54,200 19,901 81,050 9,951 40,525
22% 40,526 86,375 54,201 86,350 81,051 172,750 40,526 86,375
24% 86,376 164,925 86,351 164,900 172,751 329,850 86,376 164,925
32% 164,926 209,425 164,901 209,400 329,851 418,850 164,926 209,425
35% 209,426 523,600 209,401 523,600 418,851 628,300 209,426 314,150
37% 523,600 523,600 628,300 314,151

所以问题是 -给定应税收入的总税额是多少? 例如,100k。(正确答案是 18021)

批量折扣定价

让我们再举一个同一系列的例子——批量折扣定价。下表显示了每批订单数量的订单数量和单价。

数量从 数量到 单价
0 100 16.00
101 250 14.40
251 500 12.96
501 1000 11.66
1001 2000 10.49
2001年 5000 9.44
5001 10000 8.50

一个问题可能是:订购 1200 个单位的成本是多少? (正确答案是 14928)

计算如何工作

税表和数量折扣都通过在每个税率或折扣单价的括号内累积来计算。

示例 - tax calc 应税收入为 50,000 的单身人士应缴纳的税款为:

示例 - 批量折扣 220 个单位的订单将支付前 100 个单位的 16 元和接下来的 120 个单位的 14.40 元:

客观的

有一个可用于通用批量折扣或税表计算的公式。

我将发布我自己的解决方案,但我不会将其标记为答案 - 我确信那里有更好的解决方案,也许有人LAMBDA可以展示如何将其构建为通用解决方案。

相关问题

IF 语句为 3 个以上的条件返回不同的值

计算成本所需的复杂公式,包括多个折扣

数组公式基础而不是嵌套 if-else

使用 Excel 是否可以在不显式生成表格数据但仅使用公式的情况下绘制图表?

0 投票
3 回答
334 浏览

excel - 使用 LAMBDA 在 Excel 中生成所有排列

这是一个经常被问到和回答的问题:如何在 Excel 中生成所有排列

2011 2016 2017 2017 超级用户 2018 2021

现在在2022 年,它在作为副本关闭之前没有得到答案,这很不幸,因为LAMBDA确实改变了回答这个问题的方式。

我很少有同样的需求,并且因为不得不重新发明一个复杂的轮子而感到沮丧。所以,我将重新提出这个问题,并在下面给出我自己的答案。我不会将任何提交的内容标记为答案,但会邀请好的想法。我确信我自己的方法可以改进。

重申 2022 年的问题

我正在尝试仅使用公式在 excel 中创建一个循环。我想要达到的目标如下所述。假设我有 3 列作为输入:(i)国家;(ii) 可变的;(iii) 年。我想从这些输入扩展,然后为这些参数赋值。

输入:

国家 多变的
国标 国内生产总值 2015
区域 2016
甲烷 区域 2015

输出:

国家 多变的
国标 国内生产总值 2015
国标 国内生产总值 2016
国标 区域 2015
国标 区域 2016
国内生产总值 2015
国内生产总值 2016
区域 2015
区域 2016

如何使用 Excel 有效地做到这一点?

扩展 2018 年的问题

我有三列,每一列都有不同类型的主数据,如下所示:

在此处输入图像描述

现在,我想要这三个单元格的所有可能组合 - 比如

这可以用公式来完成吗?我找到了一个包含 2 列的公式,但我无法正确地将其扩展到 3 列

具有 2 列的公式:

其中 G1 是放置结果值的单元格

共同要求

它们的共同点是它们都试图从一组有序的符号中创建一组有序的排列。他们都恰好需要3级符号,但是2018年的问题是寻求帮助从2级到3级,2021年的问题是要求从3级到5级。2022年的问题只是要求3级,但是输出需要是一个表格。

如果我们像这样上升到 6 个级别怎么办?

L1 L2 L3 L4 L5 L6
一个 F ķ ü 1
G 大号 2
C H R W 3
D X 4

这将产生 1'440 个排列。

L1 L2 L3 L4 L5 L6
一个 F ķ ü 1
一个 F ķ ü 2
一个 F ķ ü 3
一个 F ķ ü 4
一个 F ķ 1
一个 F ķ 2
一个 F ķ 3
一个 F ķ 4
一个 F ķ W 1
... ... ... ... ... ...

制作一个包含任意数量的级别(列)的通用公式很困难。只需查看提供的答案 - 他们每个人都需要一些火箭科学,直到现在,所有解决方案都对符号列数进行了硬编码限制。那么LAMBDA 能否给我们一个通用的解决方案呢?