我有来自csv格式导出报告的spreasheet,其中包含一个包含多行的地址字段。
以下是单元格内容的示例(我使用图像在每行末尾显示问号):
我需要从地址中提取郊区(在本例中为布鲁克林),但是我所遇到的问题是在某些情况下地址中有一条额外的行,例如:
在所有情况下,郊区将永远是倒数第二行,所以我虽然以某种方式向后工作,但我不知道如何将其作为公式。
非常感谢任何帮助。
答案 0 :(得分:2)
让我们说地址位于单元格A1中。然后,以下值将为您提供最后一行。
它是使用以下伪代码派生的:
MID
(A1,
(the position of the [n-1]th new-line character) + 1,
(the position of the [n]th new-line characters) - (the position of the n-1 new-line characters) - 1)
使用以下公式实现:
换行符的出现次数由:
给出LEN(A1)-LEN(SUBSTITUTE(A1,"
",""))
第[n]次出现的换行符由下式给出:
FIND(CHAR(1),SUBSTITUTE(A1,"
",CHAR(1),(*n*-1)))
因此,最终公式由下式给出:
">"&MID(A1,FIND("
",A1,FIND("
",A1)+((LEN(A1)-LEN(SUBSTITUTE(A1,"
","")))-2))+1,(FIND(CHAR(1),SUBSTITUTE(A1,"
",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"
","")))))-(FIND("
",A1,FIND("
",A1)+((LEN(A1)-LEN(SUBSTITUTE(A1,"
","")))-2)))-1)&"<"
如您所见,>
和<
字符在最终公式中连接在一起,以确保最终字符串中没有多余的字符。您可以省略这些连接。
<强>参考强>:
How to find nth occurrence (position) of a character in text string in Excel? on ExtendOffice