[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『置換するには』(ジェイス)
セルに 24-5 と入っている場合に、24番5と表示させることはできるでしょうか? 「56-6なら56番6」となるように 「-」を「番」に置き換えたいのです。 そして「24」という「-」が入っていないものを「24番」となるようにしたいです。 質問攻めですが、
24 24番 546-3 546番3 11-5 11番5
と番で揃えれるように出来るでしょうか?宜しくお願いします。
表題にもあるように「置換え」機能を使います。 後半の質問はVBAになりそうな気が・・・ (ケン)誰かのお答えをお待ちください。
=IF(ISERROR(FIND("-",C1,1)),C1&"番",A)
中途半端ですが・・・ Aには 33-3の場合の変換をいれてくださいなぁ
これを対象の横にでもつくってコピーってのはだめですかね?
置換よりはややこしいですけどこれしか思いつかないです
(Null)
衝突しました。Nullさんに合わせて、C1セルにデータがあるとして、こうかな?(純丸)
=IF(C1="","",IF(ISERROR(FIND("-",C1,1)),C1&"番",SUBSTITUTE(C1,"-","番")))
>後半の質問はVBAになりそうな気が・・・ マクロを使うとこんな幹事ですかね?.。.:*・゜゚・(´ー`).。*・゜゚・*:.。. Sub test() Dim c As Range Dim t As String For Each c In Selection If InStr(c.Value, "-") = 0 Then c.Value = c.Value & "番" Else c.Value = Replace(c.Value, "-", "番") End If Next End Sub (Null)
こんなんでどうでっしゃろ =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1&REPT("-",LEN(A1)),"-","番",1),"-"," ",1),"-","") 懲りすぎかな? (みやほりん) ちょっと訂正。「番」で揃えるも考慮。 MS ゴシックなどの等幅フォント、配置を右揃えでお試しください。
私事ですが・・・ REPT("-",LEN(A1)の部分の役割ってなんですか? 考えたのですが分かりませんでした できれば解説をおねがいいたします。
(Null)
A1〜A5に元データがあるとします。 [-の右側が必ず1桁の場合] ・B1に =IF(ISNUMBER(FIND("-",A1)),SUBSTITUTE(A1,"-","番"),A1&"番 ") とします。 ・B1の書式は等幅フォントの右揃えとします。 ・B1をB2〜B5へコピーします。
[-の右側の桁数が不明な場合] ・B1に下記数式を入力し、ShiftとCtrlを押しながらEnterで確定して配列数式にします。
=REPT(" ",MAX(LEN(LEFT($A$1:$A$5,FIND("-",$A$1:$A$5&"-")-1)))-LEN(LEFT(A1,FIND("-",A1&"-")-1)))&IF(ISNUMBER(FIND("-",A1)),SUBSTITUTE(A1,"-","番"),A1&"番")
・B1のフォントを等幅フォントの左揃えに設定します。 ・B1をB2〜B5へコピーします。 (Yosh!)
みやほりんです。 失敗しました、前掲の式は忘れて下され。 どの値にも最後にスペースが追加されちゃいますね。 検証ががうまくいってなかったです。ゴメンナサイ。 REPTは最後に"-"を""に置き換えることでIF関数使わないで 参照セル空白時の対策をねらったものでしたが、本体の処理で失敗。 (みやほりん)
データが無いときに必要だったんですねぇ(≧∇≦)b ぜんぜんきにしてませんでしたorz 了解です。(みやほりん)さんありがとうございます (Null)
リトライ版。A1〜Anにデータが入力されているとして、 =SUBSTITUTE(A1,"-","番",1)&REPT("番 ",ISNUMBER(--SUBSTITUTE(A1,"-","番",1))*1) 表示条件 ・ "-"の右側が必ず1文字 ・ 「番」を表示する列が右寄せ、等幅フォント (みやほりん)
本題の路線からそれますが・・・
>・ "-"の右側が必ず1文字 上の条件の回避策として下の条件をプラスしてみるかと・・・ @=任意の範囲 =MAX(IF(ISERROR(FIND("-",@)),0,LEN(@)-FIND("-",@))) すいません余談でした。 (Null)
試しに書いてみました。 こういうものは、どうでしょう?-の前後には、4桁以内という条件です。 (LOOKUP)
Sub Macro1() Dim R As Range Dim L As Long Dim X As Variant Selection.NumberFormatLocal = "@"
For Each R In Selection X = R.Value
R.Value = Format(Application.WorksheetFunction. _ Substitute(R.Value, "-", "."), "0.####")
If Not IsNumeric(R.Value) Then R.Value = X: GoTo MUSI End If
L = Application.WorksheetFunction.Find(".", R.Text) - 1
If L > 4 Then R.Value = X: GoTo MUSI End If
R.Value = Application.WorksheetFunction.Substitute(R.Value, ".", "番") R.NumberFormatLocal = Application.WorksheetFunction.Rept("_0", 4 - L) & "@" MUSI: Next End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.