2016-08-15 13 views
0

私は以下のように文字列を持っています。文字の間に「<」というシンボルを挿入するにはどうすればよいですか?Excelの文字列の間にシンボルを挿入します

'ABCDE' 
'BCG' 
'ABCD' 

予想される出力は次のようになります。

A<B<C<D<E 
    B<C<G 
    A<B<C<D 
+0

'B1:= REPLACE(A1、COLUMN()* 2-2,0、" <")'(必要に応じてコピーしてください。未使用の列の最初の行に '= INDEX(1:1、、LEN(A1))'を入れてコピーしてください...あなたが望むことを実行できました... –

+0

これは1回限りの操作かどうかは不明ですまたはこれを繰り返し実行する必要がある場合 数式またはVBAソリューションを使用するかどうかは不明です。あなたの質問を編集し、これらの欠けているビットを追加してください。 – teylyn

答えて

1

=concatenate(left(A1,1),"<",mid(A1,2,1),"<",mid(A1,3,1),(if(len(A1)>3,"<"&mid(A1,4,1)&if(len(A1)>4,"<"&mid(A1,5,1),""),"")))

は、あなたが5文字までの値のためにやりたい、と3つの文字のように、いくつかのだろう。それ以外の場合は変更することができます。

基本的に、最初の3文字の間に "<"を追加して、文字列が3文字より長いかどうかを確認し、そうであれば "<"文字を追加します。これがより動的である必要がある場合は、vbaではるかに簡単です。

0

マニュアル、1オフは、無VBAのアプローチは、次のようになります。

  • は固定幅と列のツールにテキストを使用して、各文字の後にマーカーを配置します。
  • は、自分の価値観が、中に文字の最大数に合わせて数式を調整して1

    =A1&IF(LEN(B1)>0,">"&B1,"")&IF(LEN(C1)>0,">"&C1,"")&IF(LEN(D1)>0,">"&D1,"")&IF(LEN(E1)>0,">"&E1,"") 
    

    行にある場合、式は次のようになります値を追加するために、次のように数式を使用して

をセパレータ細胞。あなたがそう、あまりにもエクセルVBAとして質問をタグとして

0

このような事が...式のため

ではありません。

''''''' 
Private Sub sb_Test_fp_AddSym() 
    Debug.Print fp_AddSym("abncd", "<") 
End Sub 

Public Function fp_AddSym(pStr$, pSym$) As String 
Dim i&, j&, iLB&, iUBs&, iUBt& 
Dim tSrc() As Byte, tTgt() As Byte, tSym As Byte 

    tSrc = pStr 
    tSym = Asc(pSym) 

    iLB = LBound(tSrc) 
    iUBs = UBound(tSrc) 
    iUBt = iUBs * 2 + 3 
    ReDim tTgt(iLB To iUBt) 

    For i = iLB To iUBs Step 2 
     j = i * 2 
     tTgt(j) = tSrc(i) 
     tTgt(j + 1) = tSrc(i + 1) 
     tTgt(j + 2) = tSym 
     tTgt(j + 3) = 0 
    Next 

    ReDim Preserve tTgt(iLB To (iUBt - 4)) 

    Debug.Print tTgt 
    Stop 
    fp_AddSym = tTgt 
End Function 
''' 
0

これが私の仕事:

Sub SymbolInsert() 
    Dim cl As Range, temp As String 

    For Each cl In Range("A1:A3") '~~~> Define your range here 

     For i = 1 To Len(cl) 
      temp = temp & Mid(cl, i, 1) & "<" 
     Next i 

     cl = IIf(VBA.Right$(temp, 1) = "<", VBA.Left$(temp, Len(temp) - 1), temp) 
     temp = vbNullString 

    Next cl 
End Sub 
0

それができますおそらくExcelの公式で任意の長さで行うことができますが、ここでは最短のVBAソリューションです

For Each c In Range("A:A").SpecialCells(xlCellTypeConstants) 
    c.Value2 = Replace(Left$(StrConv(c, vbUnicode), Len(c) * 2 - 1), vbNullChar, "<") 
Next 
関連する問題