10

次の形式の文字列があります。

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",""))
    
4

7 に答える 7

13

これを試してみてください。年が 2 文字のすべての日付で機能するはずです。

=TRIM(MID(A1,FIND("/",A1)-2,8))
于 2012-10-10T13:58:07.613 に答える
4

マクロ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)は、たとえば日付を返します。

于 2012-10-10T18:05:23.220 に答える
4

[データ] タブから [テキストから列へ] を実行することをお勧めします。Delimited を選択し、区切り文字としてスペースを指定します。これにより、文字列が 5 つの列に配置され、3 番目の列が日付になり、データを直接自由に使用できます。

それ以外の場合は、Lajos Example:( =TRIM(MID(A1,FIND("!^!",SUBSTITUTE(A1," ","!^!",2)),8))) または John's answer を参照してください。

于 2012-10-10T14:12:50.240 に答える
3

[データ] > [テキストから列へ] に移動し、スペースを区切り文字として使用することで、各部分を Excel の列に分割できます。

于 2013-04-05T13:47:58.007 に答える
1

この式は、年が4文字であっても、必要な結果をもたらすはずです。

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

于 2012-10-10T14:27:22.297 に答える
1

あなたの日付は、すべての例で 2 番目と 3 番目のスペースの間にあります。3 番目のスペースを「!^!」に置き換えることができます。たとえば、「!^!」が最初に出現するまで部分文字列を取得します。その後、2 番目のスペースの後に部分文字列を抽出するだけです。詳しくはこちらをお読みください。

于 2012-10-10T13:57:08.133 に答える
0

ありがとうジョン

ここに私のコードのいくつかがあります:

「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))),"資本",""))

于 2012-10-10T14:28:14.990 に答える