2017-06-22 81 views
1

我有一個文件,我試圖獲取單個單元格的值並根據單個單元格的值生成輸出。我已經找到了提取單元格的第一行,第二行和最後一行的方法,但不幸的是,我不能理解我所看到的足夠的公式,以便能夠將該行嵌套到最後一行。從單個單元格的最後一行旁邊提取Microsoft Excel

如何從Excel中的單個單元格中提取數據的最後一行,並且是否存在一個公式,我不知道哪個公式可以很容易地適用於提取任何行(假設您瞭解forumla)?你能否在你的回答中解釋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))))))

回答

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

+0

這,先生或太太,是美麗的 –

0

考慮:

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

enter image description here

相關問題