如何将某一行中的 Excel 公式限制为特定范围的数据?

如何将某一行中的 Excel 公式限制为特定范围的数据?

在 Excel 工作簿中,我在一个单元格中设置了范围,例如从 ABA 到 ABS,我想将它们分离并在它们之间添加每个代码,如图所示。但是没有 VBA 方法。 在此处输入图片描述

设法创建一个矩阵(在此处归档) 并设置范围限制(绿色单元格 - 公式 1),然后填写这些范围内的每个代码(橙色单元格 - 公式 2)。

我不喜欢这个解决方案,因为公式 2 不够先进,范围限制后的值过多(例如第 5 行中的蓝色单元格)。我想删除这些蓝色值,让这些单元格保持空白。 在此处输入图片描述

正在寻找一个概念来解决这个问题,因为我现在没有主意了。它必须是某种形式的公式 2 修改。有人能建议我如何让公式在特定范围限制(例如 ABS)处停止吗?

答案1

假如说:

  • 您的“发件人”代码始终为三个字符,以 AB 开头
  • 您的“收件人”代码始终为三个字符,以 AB 开头
  • 范围从单个大写字母字符(例如 A)到另一个单个大写字母字符(例如 S)
  • 您拥有最新版本的 Excel,并且能够访问LETSEQUENCE功能

然后你可以这样做:

在此处输入图片描述

要返回行上的结果序列,请使用此公式,如上图中单元格 B1 所示:

=LET(from,MID($A1,3,1),to,RIGHT($A1,1),"AB"&CHAR(SEQUENCE(CODE(to)-CODE(from)+1,1,CODE(from),1)))

要返回列上的结果序列,请使用此公式,如上图中单元格 C1 所示:

=LET(from,MID($A1,3,1),to,RIGHT($A1,1),"AB"&CHAR(SEQUENCE(1,CODE(to)-CODE(from)+1,CODE(from),1)))
  1. 让名称“from”等于范围内的第三个字符(即 A)
  2. 让名称“to”等于范围内最右边的字符(即 S)
  3. CODE函数将字符转换为该字符的数字表示。A 的代码为 65。S 的代码为 83。
  4. 83 - 65 + 1 = 19,因此SEQUENCE(19,1,65,1)创建一个包含从 65 到 83 的整数的数组,因为它是一个有 19 行、1 列的列表,从 65 开始并且每次增加 1 步。
  5. CHAR将数字代码转换回字符,因此CHAR(SEQUENCE(19,1,65,1))创建从 A 到 S 的字符列表。
  6. 将步骤 5 中提到的列表与范围内的常用字符连接起来,"AB"&CHAR(...然后创建所需的输出。

相关内容