4

次のようなセルが 1 行に 1 つずつあります。

ジョン・ダフィー: 「遺産: 文明とユダヤ人」- ファンファーレとコラール、交響的舞曲 + 管弦楽組曲. バーンスタイン、「オン・ザ・タウン」ダンスエピソード。ロイヤル フィル/R.ウィリアムズ

リリアン、イグナス 1897-1963: 歌、1920-1935. アンニャ・ヴァン・ヴァイク(メゾ) & フランス・ヴァン・ルース(ピアノ)

ヒンデミット、トラウアームジーク。パーセルの「妖精の女王」組曲。ロッシーニ、弦楽ソナタ6.ペトロフ、「世界の創造」バレエ組曲. バルトーク、ルーマニア民俗舞曲 Sz 56. タルティーニ、フルート協奏曲 G wAMaiorov レニングラード管弦楽団、古代音楽と現代音楽のため/ セロフ

ビゼー、ヴェルディ、マスネ、プッチーニ:カルメン、リゴレット、ウェルテル、マノン・レスコー、トスカ、トゥーランドットのアリア+ララ、ディ・カプアらの歌 ピーター・ドヴォルスキー、ブラチスラバ管弦楽団/レナードとのテノール 「カルメン」オバートと「タイス」瞑想も演奏。Rec.Live,10/87

Fantini,Rauch,C.Straus,Priuli,Bertali: 'Festival Mass at the Imperial Court of Vienna, 1648' ヨーク​​シャー バッハ合唱団 & バロック ソロイスツ + バロック ブラス オブ ロンドン/シーモア

Vinci, Leonardo1690-1730: Semiramide Riconosciuta、Didone Abbandonata、La Caduta dei Decemviri、Lo Cecato Fauzo、La Festa de Bacco、Utica の Catone からのアリア。マリア・エンジェルス・ピーターズ・ソップ。wMカラロ指揮

グラック、モーツァルト、ベートーベン、ウェーバー、ヴェルディ、ワーグナー、ポンキエッリ、マスカーニ、プッチーニ:アルチェステのアリア、ドン・ジョヴァンニ、フィデリオ、オベロン、バロ、トリスタン、ワルキューレ、ジークフリート、ゴッテルダムルング、ジョコンダ、カヴァレリア、トスカ。ヘレン・ワイルドブラン。Rec.1919-24

すべての番号を削除したいと思います。数式でこれを行うにはどうすればよいですか? または、検索して正規表現に置き換えるだけですか?

4

3 に答える 3

11

VBAを使ってそれを行う方法...

  1. Excel ワークブックを開き、次の方法で指定したテキストを貼り付けます。 代替テキスト

  2. それらの行を選択します。

  3. 「ALT+F11」を押して、Visual Basic Editor を開きます。

  4. 挿入メニューに移動し、モジュールを開きます。

  5. 次の関数を入力します。

    Sub clear()
    s = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
    For Each r In Selection
    v = r.Value
    For i = 0 To 9
    v = Replace(v, s(i), "")
    Next
    r.Value = v
    Next
    End Sub
    

  6. 緑色の再生ボタンをクリックして、VBA スクリプトを実行します。 代替テキスト

  7. シートに戻り、結果を確認します (数字はありません)。 代替テキスト

于 2010-08-26T23:07:38.343 に答える
2

私は同様の問題に直面しましたが、vba の使用を避けたいと思って別の方法に進みました。以下に示すように、substitute を再帰的に使用するとうまくいきました。

元データ (A1:An、n=整数) ROE -1.00 P/E 0.07 -0.85 ROC-ROE 0.02 -0.03 など

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"1","")),"0",""),"2",""),"3")) ,""),"4",""),"5",""),"6",""),"7",""),"8",""),"9"," ")

これを拡張して、「-」と小数点記号「.」を取り除くことができます。「+」(関連する場合)と最後に、使用する余分なスペース

=trim(substitute(substitute(substitue(substITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"1","")),"0",""),"2"))) ,""),"3",""),"4",""),"5",""),"6",""),"7",""),"8"," "),"9",""),"-",""),"+","")," .",""))

ここで、小文字は現在のステップで追加された合併症を表します。

これは、範囲参照を解析対象の配列全体 (A1:An) に変更し、数式を配列として入力する (つまり、Enter の代わりに Ctl+Enter を使用してタスクを完了する) ことにより、配列全体に自然にマッピングされます。

次に、len(B1) を使用して、結果が希望どおりであることを確認します。

確かに、エレガントではありません。しかし、学生に「その場で」考えてコーディングすることを教えるための練習には役立つかもしれません。

于 2017-02-15T16:43:59.547 に答える
1

更新: 誤って、replace の代わりに contains 関数を投稿してしまいました!

正規表現による検索と置換は正常に機能しますが、テキストのあとがき (数字の前にあるコンマなど) を編集したい場合があります。

これが関数です。パターンは単に =RegexReplace(cell, "\d", "") です

Function RegexReplace(ByVal text As String, _
                      ByVal replace_what As String, _
                      ByVal replace_with As String) As String

Dim RE As Object
Set RE = CreateObject("vbscript.regexp")

RE.Pattern = replace_what
RE.Global = True
RegexReplace = RE.Replace(text, replace_with)

End Function
于 2011-06-30T03:00:25.310 に答える