我有一个文件,我正在尝试获取单个单元格的值,并根据该单个单元格值生成输出。我已经找到了提取单元格的第一行,第二行和最后一行的方法,但遗憾的是我不太了解我正在寻找的公式能够让嵌套到最后一行。
如何从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))))))
答案 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)))
答案 1 :(得分:0)