需要帮助(VBA 或公式?)仅返回部分数字字符串的特定实例
Need help (VBA or formula?) returning only specific instances of a partial number string
背景: 66k+ 行 Excel table 包含所有客户 ID # 和公司名称。大多数 CID 有 5-8 位数字,但有几千个来自几个使用前导零的遗留系统——一个、两个甚至三个。所以 table 有许多不同客户端的实例,它们具有非常相似的 CID,如 4212、04212、004212 等。在这个 table 中,为了使所有客户端都可搜索,CID 都存储为文本 - 以保持领先零。
帮助: 我必须像下面这样创建一个查找,用户可以在其中输入 CID,table 将填充所有相似的 CID 和公司名称。我假设这将是某种数组公式。它需要过滤掉所有包含输入的 CID 作为完整 # 的一部分的 CID(即:4212 不会 return 14212 但会 return 4212 和 04212)。我不知道如何实现这一目标。帮助!
如果您知道CID的最大长度,那么您可以根据填充后的CID进行过滤。例如,如果最大长度是 7 位数字,例如 1234567
,那么您可以用 =TEXT([CID],"000000000")
向左侧填充三个零,这将产生 0001234567
。此技术可用于强制所有 CID 使用相同的填充。
这可以用作 Excel 365(或 2021)公式中的查找值,如下所示:
=FILTER(F2:F3997,ISNUMBER(FIND(TEXT(B4,"0000000000"),TEXT(F2:F3997,"0000000000"))))
在填充的 CID# 中搜索 B4 的填充版本(本例中的单元格 F2:F3997)。
因此,例如,如果您的 CID 在 F2:F3997 中并且您的帐户名称在 G2:G3997 中,您可以将上面的公式放在单元格 C4 中,并将此公式放在单元格 D4 中:
=XLOOKUP(C4#,F2:F3997,G2:G3997,,0)
这些公式中的每一个都会溢出下面的结果。
I made up account names by simply taking the padded DEC2HEX of the CID
so that I could check the results.
背景: 66k+ 行 Excel table 包含所有客户 ID # 和公司名称。大多数 CID 有 5-8 位数字,但有几千个来自几个使用前导零的遗留系统——一个、两个甚至三个。所以 table 有许多不同客户端的实例,它们具有非常相似的 CID,如 4212、04212、004212 等。在这个 table 中,为了使所有客户端都可搜索,CID 都存储为文本 - 以保持领先零。
帮助: 我必须像下面这样创建一个查找,用户可以在其中输入 CID,table 将填充所有相似的 CID 和公司名称。我假设这将是某种数组公式。它需要过滤掉所有包含输入的 CID 作为完整 # 的一部分的 CID(即:4212 不会 return 14212 但会 return 4212 和 04212)。我不知道如何实现这一目标。帮助!
如果您知道CID的最大长度,那么您可以根据填充后的CID进行过滤。例如,如果最大长度是 7 位数字,例如 1234567
,那么您可以用 =TEXT([CID],"000000000")
向左侧填充三个零,这将产生 0001234567
。此技术可用于强制所有 CID 使用相同的填充。
这可以用作 Excel 365(或 2021)公式中的查找值,如下所示:
=FILTER(F2:F3997,ISNUMBER(FIND(TEXT(B4,"0000000000"),TEXT(F2:F3997,"0000000000"))))
在填充的 CID# 中搜索 B4 的填充版本(本例中的单元格 F2:F3997)。
因此,例如,如果您的 CID 在 F2:F3997 中并且您的帐户名称在 G2:G3997 中,您可以将上面的公式放在单元格 C4 中,并将此公式放在单元格 D4 中:
=XLOOKUP(C4#,F2:F3997,G2:G3997,,0)
这些公式中的每一个都会溢出下面的结果。
I made up account names by simply taking the padded DEC2HEX of the CID so that I could check the results.