Excel中的数据生成

Excel中的数据生成,excel,Excel,早上好,我是excel新手,如果有人能帮助我,我将非常感激(我相信从您的角度来看,答案很简单) 屏幕截图展示了一种简单的方式来解释我要寻找的内容: 对于第一列中的每个数字(可能出现多次),我希望生成一个相应的Id(请参见列Id以影响数据类型)。 我们只看开头的“数字”,它最多可以是8个数字的大小。 有时可能会出现棘手的情况,例如从40对402开始的示例,它们不受相同Id的影响 由于我是excel新手,可能这个答案或问题存在,但我不知道如何搜索/命名它。 谢谢你的帮助,祝你度过愉快的一天。棘手的

早上好,我是excel新手,如果有人能帮助我,我将非常感激(我相信从您的角度来看,答案很简单)

屏幕截图展示了一种简单的方式来解释我要寻找的内容:

对于第一列中的每个数字(可能出现多次),我希望生成一个相应的Id(请参见列Id以影响数据类型)。 我们只看开头的“数字”,它最多可以是8个数字的大小。 有时可能会出现棘手的情况,例如从40对402开始的示例,它们不受相同Id的影响

由于我是excel新手,可能这个答案或问题存在,但我不知道如何搜索/命名它。
谢谢你的帮助,祝你度过愉快的一天。

棘手的公式。这并不是最漂亮的东西,但这个公式是有效的:(为了可读性增加了换行符)

需要注意的几点:

  • 您没有包括单元格范围,因此必须手动将上述公式中的单元格范围更改为您的特定单元格范围

  • 这是一个数组公式,意味着在将此公式输入单元格后,必须按键盘上的Ctrl+Shift+enter键,而不是只按enter键

  • 该公式寻找“最强”匹配。例如,如果一个数字是40200000,公式将返回“葡萄柚”,因为它比“葡萄”更匹配

  • 如果找不到匹配项,我只需要返回公式“(no match)”,但您显然可以将其更改为您想要的任何内容

  • 我想这不会是一个问题,但如果使用任何负数,公式将不起作用

  • 请参见下面的屏幕截图,显示公式适用于您的数据

    您可以从单元格B2中尝试此数组公式(单击Ctrl+Shift+Enter),然后将其向下拖动:

    =IFERROR(INDEX(D$2:D$7,MATCH(MAX((VALUE(LEFT(A2,LEN($C$2:$C$7)))=$C$2:$C$7)*C$2:C$7),C$2:C$7,0)),"")
    

    这将尝试匹配最长的数字(使用
    MAX
    )并返回值(使用
    INDEX/match
    )。

    感谢您的提示回答!我现在正努力使这项工作成功,但失败了。我忘了提到我使用的是Excel 2010,有什么不同吗?我也在使用Excel 2010。您是否将所有单元格范围更改为任意范围并将其作为数组公式输入(Ctrl+Shift+enter)?我首先尝试使用与您发布的示例完全相同的示例。正如我在原始帖子中所说的。。。您的问题没有包括特定的单元格范围,因此您必须将单元格范围更改为工作表中的实际单元格范围。我使用的数据与您的示例相同。当我按Ctrl-Shift-Enter键时,只会出现错误弹出窗口,我尝试使用相同的公式(复制粘贴),并且没有换行符和空格。哈,比我的解决方案更好。我使用了一个带有
    LOG10
    的卷积公式来确定一个数字的位数,而不是仅仅使用
    LEN
    函数。直到现在才知道
    LEN
    与数字有关。我以为它只适用于弦。很高兴知道未来的用途。我对人有这种影响。。。(讽刺)。事实上,我想使用
    LOG10
    方法对于小数点的数字是有用的,但在这种情况下,使用整数更容易。
    =IFERROR(INDEX(D$2:D$7,MATCH(MAX((VALUE(LEFT(A2,LEN($C$2:$C$7)))=$C$2:$C$7)*C$2:C$7),C$2:C$7,0)),"")