OCN光で最大124,800円おトク!

excelで置換をしたいんですが、SUBSTITUTE関数を使うとワイルドカードが使えずうまくいきません

たとえば、
和歌山県産オレンジ 3個
サンキスト オレンジ 入荷済み
2008年オレンジ

愛知産いちご 53個
ほのか いちご 入荷済み
2011年生産 いちご

を、置換で全ての文字をオレンジが入力されたセルはオレンジのみ、
いちごが入力されたセルはいちごだけにすることはできますか?

ctrl+Hで、検索する文字列に*オレンジ*と入力して実行してもうまくいかないです。。。 

このQ&Aに関連する最新のQ&A

A 回答 (3件)

 回答番号:ANo.2です。


 申し訳御座いません、先程の回答の2番目の数式を回答欄に入力する際に、ワイルドカードのアスタリスクを打ち込む事を忘れておりました。

【誤】

=IF(COUNTIF(A1,"オレンジ"),"オレンジ","")&IF(COUNTIF(A1,"いちご"),"いちご","")


【正】

=IF(COUNTIF(A1,"*オレンジ*"),"オレンジ","")&IF(COUNTIF(A1,"*いちご*"),"いちご","")


 尚、ANo.2の1番目の数式では、ワイルドカードは使用しません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
とくに、1番目の式がわかりやすかったです。

またお願いします。

お礼日時:2011/04/08 19:53

 関数を使用して、その作業を行うのでしたら、例えば、A列に入力されている文字列を基にして、置換した文字列をB列に表示させる場合には、次の関数をB1セルに入力してから、B1セルをコピーして、B2以下に貼り付けると良いと思います。




=IF(ISNUMBER(FIND("オレンジ",A1)),"オレンジ","")&IF(ISNUMBER(FIND("いちご",A1)),"いちご","")

 或いは

=IF(COUNTIF(A1,"オレンジ"),"オレンジ","")&IF(COUNTIF(A1,"いちご"),"いちご","")

でも同じ結果が得られます。

 尚、「オレンジ」と「オレンジ」、「おれんじ」、「orange」は異なりますし、
「いちご」と「イチゴ」、「イチゴ」、「苺」は異なりますから注意して下さい。
 前もって、「オレンジ」、「おれんじ」、「orange」等々を「オレンジ」に、
「イチゴ」、「イチゴ」、「苺」等々を「いちご」に置換しておくという手もあります。
    • good
    • 0

和歌山県産オレンジ 3個 ⇒ オレンジ


ほのか いちご 入荷済み ⇒ いちご
とするのですよね?


=IF(ISERROR(SEARCH("オレンジ",検索セル,1)),検索セル,"オレンジ")

オレンジの文字が含まれていたらオレンジにそうでなければそのまま

SUBSTITUTE関数は対象文字の置き換えなので、対象文字が特定できないような表記は出来ません
    • good
    • 0
この回答へのお礼

ありがとうございました。
SUBSTITUTE関数は対象文字が特定できないと無理なんですね。。。

また、ぜひ教えて下さい!

お礼日時:2011/04/08 19:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q複数の文字列のいずれかが含まれていたらTRUEを返す関数について

複数の文字列のいずれかが含まれていたらTRUEを返す関数について
エクセル2003を使用しています。
B列に例えば住所が入力されていて、「東京都北区」「千代田区」「東村山市」等いくつかの文字列のいずれかが含まれていたら、A列にTRUEを返すということをしたいのですが方法がわかりません。
単純なことのような気がするのですがどうしても思いつきません。よろしくお願いいたします。

Aベストアンサー

こうかなあ。。。
A2セル
=OR(SUBSTITUTE(B2,$D$2:$D$4,"",1)<>B2)
[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)
下へオートフィル

D2:D4に文字列を入力しておく

Qエクセルの複数同時置換

エクセルで文字列を同時に複数置換することって出来ますか?

たとえば、ABCという文字列があった場合、

A→1
C→2

の置換を同時にやりたいんです。

ABC→1B2 に一度に置換する方法はありますか?
よろしくお願いします。

Aベストアンサー

マクロでしか出来ないと思います。
一応、標準モジュールに貼り付けることを想定していますが、どこでも構いません。フォームボタンなどに登録すると、簡単に使えるようになると思います。

Sub MultiReplacement()
 Dim MyWords As Variant
 Dim MyRepWords As Variant
 Dim Ans As Integer
 Dim Rng As Range
 MyWords = Array("A", "C") 'ここに検索語を入れてください。
 MyRepWords = Array(1, 2) 'ここに置換語を入れてください。
 '検索語と置換語を調べる
 If UBound(MyWords) <> UBound(MyRepWords) Then
  MsgBox "検索語数( " & UBound(MyWords) & _
  " )と置換語数( " & UBound(MyRepWords) & " )数が違います。", 64
  Exit Sub
 End If
 
 Set Rng = Selection 'マウスで範囲を選択してください。
 If Rng.Count = 1 Then
  Ans = MsgBox("セル1つしか選択されていませんが、よろしいですか?", vbYesNo)
  If Ans = vbNo Then
   Exit Sub
  End If
 End If
 '実行
 For i = LBound(MyWords) To UBound(MyWords)
  Cells.Replace What:=MyWords(i), Replacement:=MyRepWords(i), _
  LookAt:=xlPart, _
  MatchCase:=True
 Next i
End Sub

マクロでしか出来ないと思います。
一応、標準モジュールに貼り付けることを想定していますが、どこでも構いません。フォームボタンなどに登録すると、簡単に使えるようになると思います。

Sub MultiReplacement()
 Dim MyWords As Variant
 Dim MyRepWords As Variant
 Dim Ans As Integer
 Dim Rng As Range
 MyWords = Array("A", "C") 'ここに検索語を入れてください。
 MyRepWords = Array(1, 2) 'ここに置換語を入れてください。
 '検索語と置換語を調べる
 If UBound(MyWords) <> UBo...続きを読む

Qvlookup関数で検索値を含む文字列を検索する方法

vlookup関数で例えば E1のセルに=vlookup(D1,A:C,3,false)とした場合、D1が佐藤であれば、A列に「佐藤」がある場合には当然、「佐藤」がある行の3列目の値が返されますが、「佐藤」はなく「佐藤A」や「A佐藤」がある場合にもこれらがある行の値を返して欲しいのですが、いい方法はありませんでしょうか。*を使ってできると思ったのですがうまくいきません。上記例で、=vlookup("*佐藤*",A:C,3,false)とすればできますが、*佐藤*の部分はD1の引用を利用したいのです。
 よろしくお願いします。

Aベストアンサー

=VLOOKUP("*"&D1&"*",A:C,3,FALSE)

QExcelで正規表現やワイルドカードなどを使って置換したいのですが…

Excelの中で置換をしたいのですが、
例えば以下のように( )かっこでくくられた不規則な数字を検索し、その前後に記号を付加するといった具合です。
Wordだと置換で正規表現が使えますが、Excelではやはりマクロを作らないとだめなのでしょうか?

 置換前
  あいう(123)かきく(あああ)
  さしす(ははは)たち(589)つ
   ・      ・
   ・      ・

 置換後
  あいう★(123)★かきく(あああ)
  さしす(ははは)たち★(589)★つ
   ・      ・
   ・      ・

Aベストアンサー

以下の正規表現アドインを使用すると可能です。
http://srcedit.pekori.jp/tool/excelre.html

置換前 ((\d+))
置換後 ★$1★

Qエクセルのfind関数で、複数の条件

エクセルで、住所に"北海道"が含まれていると、"北海道"と表示し、
"青森県"や"岩手県"などが含まれていると、"東北"と表示したいです。

以下の関数を作ったのですが、北海道のときは想定どおり"北海道"と表示されますが、
それ以外のときは#VALUE!になってしまいます。
どこが悪いでしょうか?

=if(find("北海道",A1)>0,"北海道",if(find("青森県",A1)>0,"東北",if(find("岩手県",A1)>0,"東北",if(find("宮城県",A1)>0,"東北",if(find("秋田県",A1)>0,"東北",if(find("山形県",A1)>0,"東北",if(find("福島県",A1)>0,"東北","該当なし")))))))

Aベストアンサー

添付図参照

B2: =IF(ISERROR(VLOOKUP(LEFT(A2,3),D$1:E$48,2,FALSE)),VLOOKUP(LEFT(A2,4),D$1:E$48,2,FALSE),VLOOKUP(LEFT(A2,3),D$1:E$48,2,FALSE))

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qエクセル 数値だけ抽出するには?

エクセルで、文字列+スペース+数字と入力されているセルから数値だけ取り出す方法を教えていただけますか?
文字列とスペースの字数は一定で、数値の桁数は6-8桁と変動します。
A列からb列のように変換したいのです。

A列          B列
PMID:_12345678    12345678
PMID:_123456     123456

宜しくお願いいたします。

Aベストアンサー

B1に
VALUE(REPLACE(A1,1,6,""))
でよいでしょう.

数値の桁数には依存しません.

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q【Excel】特定の文字を含むセルをカウントしない方法

エクセルで特定の文字列(仮に「key」とします)を"含む"場合の関数は、

=COUNTIF(A1..A20,"*key)

で処理できるのは分かっているのですが、

特定文字列(key)を"含まない"場合の処理方法が分かりません。
VBAなどを介さずに関数だけで処理する方法がありましたら、ご教示願います。

Aベストアンサー

=COUNTIF(A1:A20,"<>*key*")
でできませんか?

QエクセルのIF文で「NOT=」はどう書くのですか?また、>=や<=の場合の書き方を教えてください

タイトルのとおりです

IF文で下記の3つの書き方がわかりません。

NOT=は、<>?
0以外の場合は、A1<>0?

A1が0と同じか、大きい場合は
A1>=0?

なんだか、うまくいきません^^;

よろしくお願いいたします

Aベストアンサー

A1が・・・・・
A1 <> 0  0以外
A1 >= 0  0以上(0を含む)
A1 > 0   0より大きい(0は含まない)
A1 <= 0  0以下(0を含む)
A1 < 0  0未満
A1 = 0  0

=<,=> などの書き方は使えません。


人気Q&Aランキング