• ベストアンサー

Excel 関数 置換をしたい

たとえば○,△,□,☆が点在しており、 ○→丸,△→三,□→四,☆→星,に置換したい場合に何か有効な関数はありますか? 具体的にはシート1 A B C D E 1  △ 2□ 3○   ☆ 4 を シート2で下記のようにしたいです A B C D E 1  三 2四 3丸   星 4 だれかお知恵を拝借させてください

質問者が選んだベストアンサー

  • ベストアンサー
  • kerogiro
  • ベストアンサー率33% (51/152)
回答No.4

また登場のNo.3です。 では、ifとvlookupを組み合わせてみましょう。 例えばSheet3のA1からB4にマスター表を作ったとします。 そしてSheet2のA1セルに下記式を入力。 =IF(Sheet1!A1="","",VLOOKUP(Sheet1!A1,Sheet3!$A$1:$B$4,2,0)) あとはコピーするだけです。 置換候補が実際はもっとあるようですので、マスター表の5行目以降に必要な分だけ追加して使ってください。 老婆心ながら、vlookup関数の引数、範囲のところ、絶対参照にすることを忘れずに ^-^ これでいかがでしょうか。

gastronome
質問者

補足

ありがとうございます。挑戦してみます。

その他の回答 (5)

  • Yorisin
  • ベストアンサー率54% (364/663)
回答No.6

Sheet1に入力されている場合に、 データをSheet2にコピーして置換するマクロを作ってみました。 シート全体に対して置換をするので、データの個数や位置に制限はないはずです。 ご参考にどうぞ。 Cells.Select Range("C10").Activate Selection.Copy Sheets("Sheet2").Select ActiveSheet.Paste Selection.Replace What:="○", Replacement:="丸", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="△", Replacement:="三", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="□", Replacement:="四", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Selection.Replace What:="☆", Replacement:="星", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Application.CutCopyMode = False Range("A1").Select

回答No.5

もしVBAを使っていいのならこんなところでしょうか。 (すでにSheet2に記号が入力されており、Sheet2のA1セルから横10列×縦20行の範囲の変換の場合です。) これをSheet2で実行すれば変換されます。 必要に応じて変換範囲の列数・行数を変えられます。 ご参考までにどうぞ。 Sub henkan() Dim Col As Integer Dim Row As Integer For Col = 1 To 10 For Row = 1 To 20 If Cells(Row, Col).Value = "○" Then Cells(Row, Col).Value = "丸" ElseIf Cells(Row, Col).Value = "△" Then Cells(Row, Col).Value = "三" ElseIf Cells(Row, Col).Value = "□" Then Cells(Row, Col).Value = "四" ElseIf Cells(Row, Col).Value = "☆" Then Cells(Row, Col).Value = "星" End If Next Row Next Col End Sub

  • kerogiro
  • ベストアンサー率33% (51/152)
回答No.3

関数で。とのことですのでIF関数での紹介をいたします。 Sheet2のA1セルに下記式を入力。 =IF(Sheet1!A1="○","丸",IF(Sheet1!A1="△","三",IF(Sheet1!A1="□","四",IF(Sheet1!A1="☆","星","")))) あとはコピーするだけです。 これでいかがでしょうか。

gastronome
質問者

補足

すいません。 実は、その置換が100個ぐらいあるのですが、 ほかに対策があればと思い登校した次第です。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

文字列毎に「編集→置換→検索文字列、置換文字列→全て置換」を繰り返す事になりますが駄目でしょうか。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

置き換えの機能ではダメなのでしょうか。 A~E列選択して、ツールバーの 編集=>置き換え 検索する文字列   ○ 置き換える文字列  丸 全てを置き換え 実行してみてください。 他同様の作業になります。

関連するQ&A

専門家に質問してみよう