gpt4 book ai didi

excel - 提取特定单元格数据的公式逻辑

转载 作者:行者123 更新时间:2023-12-04 22:00:24 25 4
gpt4 key购买 nike

用于从样本数据中提取第一个 £ 数字而不是第二个数字

(24M UNLTD+INS 30GB £347+£30 S6)

Stackoverflow 问题中使用了以下数组公式。

   {=MID(A1,FIND("£",A1),MIN(IF(ISERROR(MID(MID(A1,FIND("£",A1)+1,999),ROW($1:$999),1)+0),ROW($1:$999),999)))}

我尝试分析下图所示的公式。我无法掌握部分的逻辑
MIN(IF(ISERROR(MID(MID(A1,FIND("£",A1)+1,999),ROW($1:$999),1)+0),ROW($1:$999),999))

至于如何得出4的数字。要求详细说明这部分公式,以阐明该公式的各种成分的作用。

ste by step working on formula

最佳答案

尝试以下作为标准(非数组)公式,

=--REPLACE(REPLACE(A2, 1, FIND("£", A2), ""), FIND("+", REPLACE(A2, 1, FIND("£", A2), "")), LEN(A2), "")

先里面 REPLACE(A2, 1, FIND("£", A2), "")删除直到第一个 的所有内容$ 符号,然后应用相同的逻辑从第一个 中删除该修改文本中的所有内容+ 到最后。 --将看起来像数字的文本转换为实际数字。

您提供的数组公式使用了更复杂的逻辑。
  • FIND("£", A2) + 1查找第一个 之后的第一个数字的起点$ 象征。例如第一个 £ 是第 20 个字符,因此它返回 21。
  • MID(A2, FIND("£",A2)+1, 999)提取第一个 £ 符号之后的文本。文本可能看起来像以数字开头,但它是伪装成数字的文本。例如347+£30 S6
  • 在数组公式中,ROW($1:$999)处理为从 1 到 999 的数字序列,每个计算周期递增 1。
  • MID(MID(A1, FIND("£", A1) + 1, 999), ROW($1:$999), 1) + 0)返回一个文本值数组,每个值长 1 个字符,文本比前一个值更深 1 个位置。例如3 , 4 , 7 , + , £
  • +0用于尝试将这些文本中的每一个转换为数字。如果无法将一段文本转换为真数字,IFERROR 函数将返回 TRUE。第一个不能变成真数的是第四个,例如+
  • IF在第四个位置捕获 TRUE 并从第二个 ROW($1:$999) 返回 4 .已返回 999对于位置 1、2 和 3。例如999、999、999、4、5等
  • MIN捕获作为数组返回的这些数字中的最小值。这就是 4 来自。例如999, 999, 999, 4, 5, 999, ...

  • 您可以通过将所有 999 更改为 9 然后使用 Evaluate Formula 来亲自查看。命令。更改为 9 的原因很重要,因此返回的数字数组看起来像 1、2、3、4、5、6、7、8、9,不会像 1、2、3 那样严重混淆结果, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ... 998, 999。

    evaluate_formula这表明该公式评估了该过程的几个步骤。注意 4 被退回 MIN function .

    关于excel - 提取特定单元格数据的公式逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36131642/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com