私は、次のような多くの文字列を持っている:数の文字列を爆発し、形式を変更
「1.5.22.1.2」
を、私はそれを離れて引っ張って、もう一度戻って一緒にそれを置く必要があるだろうこのように:
"1.05.22.01.02"
違いが股関節です最初のものには先行ゼロはありません。
文字列がoutプログラムの1つでコードとして使用されるため、これは大きな "コピー、操作、貼り付け"ジョブです。
私は、次のような多くの文字列を持っている:数の文字列を爆発し、形式を変更
「1.5.22.1.2」
を、私はそれを離れて引っ張って、もう一度戻って一緒にそれを置く必要があるだろうこのように:
"1.05.22.01.02"
違いが股関節です最初のものには先行ゼロはありません。
文字列がoutプログラムの1つでコードとして使用されるため、これは大きな "コピー、操作、貼り付け"ジョブです。
非正統的な解決策は、新しいワークシートを開き、次の操作を実行することです:
1)変更したいすべての数字(1.5.22.1.2)をコピーして、新しいワークシートに貼り付けます。
2)細胞を強調表示し、[データ]タブに移動し、S
2A)を選択区切り「欄へのテキスト」を選択し、ちょうどドットで
2B NEXT
)タブとして選択区切り文字やその他のヒット:図2c)が完成ヒット。
それぞれの数字は新しい列にある必要があり、if条件を使用して連結して連結します。
次にあなたが望むように列を変更することができます。たとえば
を私が持っている:
列1のために:=IF(E6<10, CONCATENATE(0,E6),E6)
:2列目のため=D6
列3の場合:=L6
:列4用
=IF(H6<10, CONCATENATE(0,H6),H6)
これは、我々は連結によって一緒に戻って絞ることができた後、あなたがしている出力の場合:
終了商品が列Pまたは(私の列6)
連結の式は次のとおりです。=CONCATENATE(D6,".",E6,".",F6,".",G6,".",H6)
おそらくVBA UDFは簡単です:=のFormatThisとしてあなたの細胞から
Function FormatThis(oCell As Range) As String
Dim vValue As Variant
Dim vSplit As Variant
Dim lCt As Long
vSplit = Split(oCell.Value, ".")
For lCt = LBound(vSplit) + 1 To UBound(vSplit)
vSplit(lCt) = Format(vSplit(lCt), "00")
Next
FormatThis = Join(vSplit, ".")
End Function
コール(A2)
REGEXを使ってみましたか? – 3kstc
申し訳ありませんREGEXの経験はありません。 – morne
@morne、最初の数字は1か01でしょうか?結果として「01.05.22.01.02」が期待されますか? – ehh