从单个单元格Microsoft Excel中提取最后一行的旁边

时间:2017-06-22 18:38:39

标签: excel excel-formula

我有一个文件,我正在尝试获取单个单元格的值,并根据该单个单元格值生成输出。我已经找到了提取单元格的第一行,第二行和最后一行的方法,但遗憾的是我不太了解我正在寻找的公式能够让嵌套到最后一行。

如何从Excel中的单个单元格中提取下一个到最后一行数据,是否有一个我不知道哪个公式可以很容易地适用于提取任何行(假设您了解forumla)?你能在答案中解释一下论坛吗?

以下是我目前正在使用的内容:

细胞价值

Line 1
Line 2
Line 3
Line 4

提取第1行,第2行和最后一行的公式(按顺序)

=IF(ISERROR(LEFT(E2,FIND(CHAR(1),SUBSTITUTE(E2,CHAR(10),CHAR(1),2))-1)),"$a"&LEFT(E2,FIND(CHAR(10),E2)-1),"$a"&LEFT(E2,FIND(CHAR(1),SUBSTITUTE(E2,CHAR(10),CHAR(1),2))-1))

=MID(E11,FIND(CHAR(10),E11)+1,FIND(CHAR(1),SUBSTITUTE(E11,CHAR(10),CHAR(1),2))-FIND(CHAR(10),E11)-1)

=IF(ISERROR(RIGHT(E14,LEN(E14)-FIND("@",SUBSTITUTE(E14,CHAR(10),"@",(LEN(E14)-LEN(SUBSTITUTE(E14,CHAR(10),"")))/LEN(CHAR(10)))))),E14,RIGHT(E14,LEN(E14)-FIND("@",SUBSTITUTE(E14,CHAR(10),"@",(LEN(E14)-LEN(SUBSTITUTE(E14,CHAR(10),"")))/LEN(CHAR(10))))))

2 个答案:

答案 0 :(得分:1)

如果将所有换行符扩展为空格,则原始字符串的长度然后拾取第一个,第二个,最后一个,倒数第二个变为简单的数学。

'first
=TRIM(LEFT(SUBSTITUTE(A2, CHAR(10), REPT(CHAR(32), LEN(A2))), LEN(A2)))
'second
=TRIM(MID(SUBSTITUTE(A2, CHAR(10), REPT(CHAR(32), LEN(A2))), LEN(A2)*1, LEN(A2)))
'last
=TRIM(RIGHT(SUBSTITUTE(A2, CHAR(10), REPT(CHAR(32), LEN(A2))), LEN(A2)))
'next-to-last
=TRIM(MID(SUBSTITUTE(A2, CHAR(10), REPT(CHAR(32), LEN(A2))), LEN(A2)*(LEN(A2)-LEN(SUBSTITUTE(A2, CHAR(10), ""))-1), LEN(A2)))
'second-from-last
=TRIM(MID(SUBSTITUTE(A2, CHAR(10), REPT(CHAR(32), LEN(A2))), LEN(A2)*(LEN(A2)-LEN(SUBSTITUTE(A2, CHAR(10), ""))-2), LEN(A2)))

'all in sequence when filled down (E3 per supplied image)
=TRIM(MID(SUBSTITUTE(A$2, CHAR(10), REPT(CHAR(32), LEN(A$2))), LEN(A$2)*(ROW(1:1)-1)+1, LEN(A$2)))

enter image description here

答案 1 :(得分:0)

考虑:

=TRIM(MID(SUBSTITUTE($A1,CHAR(10),REPT(" ",999)),(LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),"")))*999-998,999))

enter image description here