Stevenは、DCC2418Rなど、かなりの数の部品番号を含むワークシートを持っています。彼は、すべてのプレフィックス(常に「DCC」)を「RR」に変更し、すべてのサフィックス(常に「R」)を「F」に変更したいと考えています。したがって、検索と置換の後、DCC2418RはRR2418Fになります。スティーブンは、変換を行うために複数の検索および置換操作を実行できることを知っています。彼は、これを1回の検索と置換のパスで実行する方法があると考えていますが、その方法がわかりません。

スティーブン、あなたの疑惑は正しくありません。1回のパスでそれを行う方法はありません。 Word(シングルパスで実行できる)とは異なり、Excelにはワイルドカード検索を実行する機能が含まれていません。それはあなたが運が悪いという意味ではありません。実行する必要のあるタスクを実行するには、実際にはいくつかの方法があります。

おそらく最も簡単な方法は、フラッシュ塗りつぶしツールを使用することです。部品番号がA1から始まる列Aにあると仮定しましょう。セルB1に、正しくフォーマットされた部品番号を入力します。セルB2で、次に正しくフォーマットされた部品番号の入力を開始します。フラッシュフィルが機能するはずです。 (図1を参照)

image

図1.作業を開始するフラッシュフィル。

Excelによって提供される薄い影付きのエントリに注意してください。これは、フラッシュフィル機能の結果です。この時点で、Enterキーを押すだけで、正しくフォーマットされた部品番号が得られます。何らかの理由でFlashFillが自動的に変換を提供しない場合は、セルB2に修正された部品番号を入力した後、列Bの最後のセルからB1の範囲を選択します(たとえば、範囲B1を選択します)。 :B227。)次にCtrl + Eを押すと、FlashFillは選択した範囲内のすべての空のセルを終了します。

もちろん、FlashFillはすべてのバージョンのExcelで使用できるわけではありません。これはExcel2013で最初に導入されました。FlashFillを使用できない場合は、数式を使用して変換を行うことができます。次のセルB1は、セルA1にあるものすべての正しく変換された部品番号を示します。

=SUBSTITUTE(SUBSTITUTE(A1,"R","F",1),"DCC","RR",1)

次の数式はセルB1でも機能します:

="RR" & MID(A1,4,LEN(A1)-4) & "F"

マクロアプローチが必要な場合は、セルを調べて、プレフィックスとサフィックスの条件が満たされた場合に変更を加えるマクロアプローチを作成できます。

次の例、ReplacePartNumは、「MyRange」という名前の範囲で機能します。 (つまり、マクロを実行する前に、「MyRange」という名前の範囲を定義する必要があります。名前の範囲には、調べて変換するすべてのセルが含まれている必要があります。)

Sub ReplacePartNum()

Dim myRange As Range     Dim c As Range     Dim origText As String     Dim firstBit As String     Dim endBit As String     Dim middleBit As String

Set myRange = Range("MyRange")

For Each c In myRange         origText = c.Text         firstBit = Left (origText, 3)

endBit = Right (origText, 1)

If firstBit = "DCC" And endBit = "R" Then             middleBit = Mid (origText, 4, Len(origText) - 4)

c.Value = "RR" & middleBit & "F"

End If     Next End Sub

必要に応じて、マクロでワイルドカードを使用できることを知っておく必要があります。マクロ内でワイルドカードを使用する方法のより詳細な説明、 link:/ excelribbon-Wildcards_in_Replace_With_Text [このヒントにあります]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13479)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。