从具有动态属性的单元格中提取字符

时间:2018-05-08 18:47:25

标签: excel excel-formula

我会尽力使这个解释尽可能简单。

Cell A1包含一系列数据,如:

X001DDWIQ3(607093),X001E6Y98T(81299),X001E6Y98T(81299),X001DDWIQ3(607093),X001R5N087(605253),X00185UHG9(439599),X00185UHG9(439599),X001RPL9AN(37),X001PBDU9R(101) ,X0017I5MV7(439599)

Cell B1类似且有相应的数据: 的 CAE1,CMH1,DFW7,EWR4,MKC6,MKE1,OAK4,ONT2,SNA6

Cell C1包含Cell B1中的一个值 的 EWR4

由于EWR4是Cell B1中的第4项,因此它与X001DDWIQ3(607093)(单元格A1中的第4项)协调。

由于B1中的所有项目都是4个字符长,用逗号分隔,没有空格我可以使用公式:

LEN(LEFT(A1,FIND(C1,B1)-1))/5+1

确定C1占据B1的位置。

我要做的是将相应的值提取到单元格D1中。我可以从现有的中提取的唯一常量信息是,所需的值位于第3个和第4个逗号之间,括号外的字符总是有10个。括号中的数字是动态的,并且是什么让我感到难过。

我需要确定第3个逗号和第4个逗号中有多少个字符用作 = MID 的起点和终点。

1 个答案:

答案 0 :(得分:2)

您的LEN(LEFT(A1,FIND(C1,B1)-1))/5+1可以简化为:

(FIND(C1,B1)-1)/5+1

然后我们可以在每个,增加99个空格的中间使用它,这为我们提供了一个很大的目标。然后我们修剪回报。

使用:

=TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),((FIND(C1,B1)-1)/5)*99+1,99))

enter image description here