簡體   English   中英

使用Excel拆分字符串

[英]Split string using Excel

我有一個字符串,格式如下:

StockCode Country Date Price equity

例如:

  • 1 hk 10/31/12 C70.5 equity
  • 101 hk 11/21/13 P63 equity
  • 388 hk 10/17/12 P100 equity

我可以通過這個Excel命令提取日期:

LEFT(RIGHT(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)),
LEN(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))-FIND(" ",
RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))),FIND(" ",
RIGHT(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)),
LEN(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))-FIND(" ",
RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1))))))

(換行符換行)

結果: 10/31/12

任何人都有更好的解決方案嗎?

這是我的一些代碼:

  • 如何獲得“C”和“P”:

     TRIM(MID(A1,IFERROR(FIND("P",A1),FIND("C",A1)),1)) 
  • 如何獲得執行價格:

     TRIM(SUBSTITUTE(RIGHT(A1,LEN(A1)-IFERROR(FIND("P",A1), FIND("C",A1))),"equity","")) 

試試這個,我認為它適用於所有2個字符年份的日期:

=TRIM(MID(A1,FIND("/",A1)-2,8))

我建議從“數據”選項卡中運行“文本到列”。 選擇“分隔”,並將空格指定為分隔符。 這會將您的字符串放入五列,第三列是日期,然后您可以直接自由使用數據。

否則,我會看看Lajos示例:( =TRIM(MID(A1,FIND("!^!",SUBSTITUTE(A1," ","!^!",2)),8)) )或John的回答。

如果你可以使用宏UDF,這很簡單。

Function STR_SPLIT(str as String, sep as String, n as Long)
    Dim Arr() as String
    Arr = Split(str, sep)
    STR_SPLIT = Arr(n - 1)
End Function

str是要拆分的字符串,sep是要拆分的字符 - 在您的情況下為“ - ” - n是您要查找的列號。 所以= STR_SPLIT(A1,“”,3)將返回例如日期。

您可以通過轉到“數據”>“文本到列”並將空格用作分隔符,將每個部分拆分為Excel中的列。

您的日期在所有示例中的第二個和第三個空格之間。 您可以用“!^!”替換第三個空格 例如,然后獲取子字符串,直到第一次出現“!^!”。 之后,您只需要在第二個空格后提取子字符串。 在這里閱讀更多內容。

即使年份有4個字符,此公式也應該提供所需的結果

=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),198,99))

謝謝約翰

這是我的一些代碼:

如何獲得“C”和“P”:

TRIM(MID(A1,IFERROR(FIND( “P”,A1),FIND( “C”,A1)),1))

如何獲得執行價格:

TRIM(SUBSTITUTE(RIGHT(A1,LEN(A1)-IFERROR(FIND( “P”,A1),FIND( “C”,A1))), “公平”, “”))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM