如何将一个单元格的值返回到多个单元格,每个单元格的长度不同

如何将一个单元格的值返回到多个单元格,每个单元格的长度不同

我不知道从哪里开始,所以......

前任。

<*cell* M8> 2x^2-10x+8=0 

我目前在单元格中所做的事情:I4,J4,K4

<*cell* I4>=LEFT(M8;1) returns the value 2

<*cell* J4>=MID(M8;5;3) returns the value -10

<*cell* K4>=MID(M8;10;1) returns the value 8

到目前为止,它是正确的!(这就是我要找的答案)

但我想要一个更动态的功能:

例 2

“但是!如果单元格 M8 的文本值为“-15x^2+101x-18=0左边-函数无法提供我想要的答案。

我正在寻找一个可以使所有这一切成为现实的函数(糟糕的笑话)

  • 搜索“从左边”停止于^n将值返回到指定单元格(例如 I4)
  • 搜索^n取所有值之前X将值返回到指定单元格(例如 J4)
  • 搜索X取所有值之前=将值返回到指定单元格(例如 K4)

(抱歉,伙计们,但我是个菜鸟,所以这是我能想到的最好的办法!)当然……我知道可能还有很多更好的解决方案。请随意提供!我只是不知道如何开始,或者从函数开始……

答案1

假设您有一个类似于以下内容的字符串:

Ax^2 +bx +C= 0

在哪里AbC可以是任意真实的(在数学意义上)数字(例如二次函数),然后您可以结合推理使用 FIND 函数。

对于第一个系数(A),因为它是第一个,所以您可以使用以下命令:

=LEFT(M8;FIND("x^2";M8)-1)

假设 x^2 是唯一的,那么该函数将获取 x^2 项左侧的所有字符。

其余术语遵循类似的推理。我现在发布这篇文章是为了启发你,稍后我会写出其余的解决方案。

对于第二个系数(b) 你会遇到麻烦,因为你需要查找“x”两次,因为“x^2”中有一个“x”。可能有更好的方法可以做到这一点,但编写嵌套的 FIND 是相当清楚的。

=MID(M8;FIND("x^2";M8)+3;FIND("x";B2; FIND("x";B2) + 1) - (FIND("x^2";B2) + 3) )

解释原因。系数在“x^2”写入后立即开始。因此,首先找到与“x^2”对应的第一个字符,然后将该字符串的字符数增加 (3)。之后,您需要知道要取多少个字符,这就是第二个“x”与“x^2”末尾之间的差值。+1第三个需要FIND告诉 Excel 不要查看第一个。

第三个系数(C)基于FIND我之前使用的双精度。

=MID(M8;FIND("x";B2; FIND("x";B2) + 1) + 1; LEN(M8) - FIND("x";B2; FIND("x";B2) + 1) - 2)

LEN计算字符串中的字符总数。差值是最后一个系数中的字符数。存在-2以排除=0

这种方法的唯一问题是正数会有 + 标记。你可以使用 IF 来获取它们,但这更麻烦,而且数学目的,它是一个准确的表示。

答案2

这是上一个答案的延伸,因为n度方程。但要成为简单的解决问题时必须遵循一些严格的规则:

  • 功能需求具有全部变量清晰且独特已定义。

    • x^1,,x^2...,x^9都是有效的,并且之前的所有术语都x^9需要存在(即使不存在,也只是举例0 x^8而已)。
    • x^1x^10是无效的。由于第二个包含第一个,因此 FIND 函数会混淆。正确的用法应该是x^01x^10
    • x^0不需要存在(在最后一种情况下不能存在)。
  • 反过来,您需要在查找表中列出所有变量。适用相同的规则。

话虽如此,我现在介绍我的数据设置:

初始数据设置和最终结果

它显示了对函数的期望。除了上面介绍的使用规则外,系数可以自由书写。然而,由于这种自由,事情可能看起来相当混乱。我的建议是保持一致性(即 所有系数都为+105.25x^15-205.987x^05)。

现在,实际的查找功能:

  1. 对于x^8:该函数本质上等于我之前介绍的函数,因此我对其进行了调整以适合我的示例:

    =LEFT($C$2;FIND(B4;$C$2)-1)
    

    注意包含单元格的函数上的美元符号。虽然这是一个单独的函数,但这在以后会很有帮助。

  2. 对于x^7x^1

    如果没有最初的考虑,这里的功能将会变得更加棘手(几乎不可能)。

    =MED($C$2;FIND(B4;$C$2) + LEN(B4);FIND(B5;$C$2) - (FIND(B4;$C$2) + LEN(B4)) )
    

    背后的逻辑是按顺序选取术语之间的文本。第二个参数放置第一个字符第一项(x^8)和第三个参数通过差值计算系数的长度。

    此后,您可以将此功能一直拖到x^1。这是美元符号(又称“锁定单元格”)派上用场的地方。

    如果不写出空项,即使存在项,此函数也会出现错误。

  3. 为了x^0

    =MED($C$2;FIND(B11;$C$2) + LEN(B11);LEN($C$2) - (FIND(B11;$C$2) + LEN(B11)) - 2)
    

    其理由与我之前的回答中所用的理由类似。

我经常使用该LEN函数来计算因子的大小(以字符为单位)。虽然在我的例子中,它们都是由 3 个字符组成,但这样我就避免在每个函数中都写魔法数字,并且它允许可扩展性(这是n度方程)。

相关内容