首页 > 解决方案 > Excel 自动将 7 位 CAS 编号转换为另一个数字(日期?)

问题描述

问题:我正在使用 2 个列表。A 列和 B 列中分别有一个称为 HYPHEN 和一个称为 CAS Number。

C 列使用了一个公式,该公式将 A 列和 B 列组合起来,并对它们进行排序,如果 A 列中存在连字符,则将其插入到相邻的 CAS 编号之前,然后将其插入下面,并且顺序继续,以便所有连字符和 CAS 编号都是包括。我附上了一张图片来更好地解释这一点,下面给出了复制它的公式。

排序时 CAS 编号被错误地转换为另一个数字(以红色突出显示)

CAS 编号是材料/化学品的唯一标识,通常写为 000-00-0,但有时您会获得 CAS 编号为 0000-00-0(或其他变体)的材料。

在大多数情况下,C 列是正确的,因为除了一个 CAS 编号外,其他所有编号都采用通常格式。然而,以红色突出显示的6132-04-3正被转换为1545801.

我尝试过的: 我已经意识到6132-04-3正在转换为,03/04/6132所以我很确定这被认为是导致问题的日期。我试图将单元格格式化为文本格式,我在 CAS 编号之前添加了一个逗号,但没有返回所需的值,6132-04-3而是始终返回1545801.

复制问题: A 列和 B 列可以输入任何数据。为了复制 C 列的输出,公式如下:

C 列的公式: =FILTERXML(" "&SUBSTITUTE(TEXTJOIN(",",TRUE,A2:B26),","," ")&" ","//b")

(公式由@Gary 的学生在 Stack Overflow 上提供)

任何关于如何防止红色 CAS 编号在 C 列中排序时被转换的想法将不胜感激。

标签: excelexcel-formulaformattingoffice365

解决方案


这是通过添加然后删除任意字符来修复它的粗略方法:

=MID(FILTERXML("<a><b>"&SUBSTITUTE(TEXTJOIN(",",TRUE,IF(A2:B26="","","x"&A2:B26)),",","</b><b>")&"</b></a>","//b"),2,99)

在此处输入图像描述

如果您的某些字符串包含逗号,请使用不同的分隔符:

=MID(FILTERXML("<a><b>"&SUBSTITUTE(TEXTJOIN("|",TRUE,IF(A2:B26="","","x"&A2:B26)),"|","</b><b>")&"</b></a>","//b"),2,99)

推荐阅读