人に聞けない痔の悩み、これでスッキリ >>

こんにちは。
エクセルで各セルに
------------------------
山田さん
鈴木
田中さん
木村さんと川村さん
------------------------
のような最後に”さん”がついている場合とついていない場合があります。

”さん”を置換して空白にすれば削除できるのですが、

木村さんと川村さん

のセルの”木村さん”の”さん”は削除せず、セルの文字列末尾の”川村さん”の”さん”は削除したいのです。

希望としては、
------------------------
山田
鈴木
田中
木村さんと川村
------------------------
の様な形にしたいのですが、何か良い方法ありましたらアドバイス頂けませんでしょうか?
よろしくお願いいたします。

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

A 回答 (3件)

A1セルから順にデータがあるとして、


=IF(RIGHT(A1,2)="さん",LEFT(A1,LEN(A1)-2),A1)
で出来ると思います。
    • good
    • 2

=IF(RIGHT(TRIM(A1),2)="さん",LEFT(TRIM(A1),LEN(TRIM(A1))-2),TRIM(A1

))
    • good
    • 2

おはようございます。


A1セルに「木村さんと川村さん」と入っていた場合、
B1セルに

=LEFT(A1,LEN(A1)-2)

といれると、「木村さんと川村」になります。
※とにかくセル文字列末尾2文字だけが除かれます。

その後で、B列をA列に値貼付し、B列を消去で関数は取り除かれます。
    • good
    • 1

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

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

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

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

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

Qエクセルで文字列の右から4文字を削除してセルに表示したい

明けましておめでとうございます。宜しくお願いします。
エクセルの文字表示で、A列(A1~A20)に文字数の違う文字列が20行程入力されています。それを、A列(A1~A20)のセルに入力されてされている文字列から4文字だけ削除して、B列(B1~B20)に表示(入力)したいのですがどうすればいいのでしょうか?
例えば、A列(A1~A20)のセルにそれぞれ「今年は2008年です。etc.」とか「今年は2008年1月3日です。etc.」、、、など文字数の違った文字列が入力されているセルの右から4文字分「etc.」だけ削除してB列(B1~B20)に「今年は2008年です。」とか「今年は2008年1月3日です。」というふうに表示(入力)したいのです。テキストを読んでMID関数で出来るかなと思ったのですが、MID(文字列の、何文字目から、何文字分)というもので、文字列の左から何文字目を先頭に、何文字分を表示ということで、私のやりたい事の逆なのです。いい方法を教えて下さい。

Aベストアンサー

=MID(A1,1,LEN(A1)-4)
では?

Qエクセルで最後の文字だけ置き換えをしたい

エクセル2003です。
セルに以下のようなリストがたくさんあります。
owner_id=mh/pa001/
owner_id=mh2/prof/
owner_id=mh25/ron666/
owner_id=mi/s29r/
owner_id=mo/sakurasaku/
owner_id=mhpo/smbc/
owner_id=mkjh/t30r/
owner_id=mii/tama3/
owner_id=lkih/yamaweb/

最後の「/」だけを消去するか、別の文字に置き換えたいのですが、
どうすればよいでしょうか?
よろしくお願いします。

Aベストアンサー

A列に入っているとして

B1=LEFT(A1,LEN(A1)-1)

てな感じでいかがでしょうか?

実際にエクセルで動かしていないのでNGな場合はすいません。
もちろん他の方法もあります。

QEXCELで文字列の後ろに同じ文字列を追加するには?

初心者です、教えてください。
ワークシート内の一行の文字列全てに同じ文字を追加したいのですが、方法を教えてください。
初歩的な質問で恐縮ですが、どうかよろしくお願いします。

Aベストアンサー

A1の文章の最後に「ほげー」をつけたいときは、
B1に
=A1&"ほげー"
と入力して、対象となる下までフィルダウン。

そのあと、B列をコピー⇒形式を選択して貼り付け⇒値
最後にA列を削除すればできます。

Qセルの文字列後ろのスペース削除

Excel2007を使用しています。

意図せずに、セルの文字列の後ろにスペースが入っている事があります。

大量のセルがある為、簡単な操作にてシート単位または列の単位にて、スペースをまとめて削除をしたいと考えています。

この操作の方法を教えてください。

Aベストアンサー

既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。

文字列の右端にあるスペースを 1 つだけ削除したい場合は、次式で可能です。スペースでない文字は、削りません。幾つも右端にスペースが連なっている場合は、次式での処理を何回か繰り返せば、そのうちに全て削除されます。なお「" "," "」という部分は、全角と半角のスペースという意味です。

=left(a1,len(a1)-or(right(a1)={" "," "}))

No.2 さんも言及されていますが、文字列の最後に改行の文字列が付いている場合、右端はスペースではないと判断されてしまうので、注意してください。改行の文字列を削除するには、CLEAN 関数を使うか、または置換ダイアログにおける Ctrl+J のキー操作により除去します。

● =clean(a1)
または
●置換ダイアログの「検索する文字列」にカーソルを置いて Ctrl+J のキーを 1 回だけ押す。このとき見かけ上は何の変化もないが、目に見えない何かが入力されているので、気にしない。「置換後の文字列」には何も入力しないまま、「すべて置換」または「置換」ボタンにより実行すると、改行が除去される。

既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。

文字列の右端にあるスペースを 1 つだけ削除したい場合は、次式で可能です。スペースでない文字は、削りません。幾つも右端にスペースが連なっている場合は、次式での処理を何回か繰り返せば、そのうちに全て削除されます。なお「" "," "」という部分は、全角と半角のスペースという意味です。

=left(a1,len(a1)-or(right(a1)={" "," "}))

No.2 さんも言及...続きを読む

Qエクセル 数字の前の「00」を消す方法

エクセル初心者なので、行き詰ってしまいました。
どうか、簡単な方法を教えてください。
コード「001234」「001235」「001236」・・・と6桁になっている数字の前2桁「00」を
消して4桁にしたいのです。
置き換えで「00」を、なくすことを考えたのですが、コードが「001200」や「000012」などの
場合全ての「0」も消えてしまいます。
前の「00」のみを消す方法があったら教えてください。
どうぞよろしくお願いいたします。

Aベストアンサー

試しにマクロを作ってみました。
最初はダミーデータでテストして、よければ使ってみてください。
対象セル範囲を選択しておいて、マクロを実行してください。

Sub test()
  Dim c As Range
  For Each c In Selection
    If Len(c.Value) = 6 Then
      c.Value = Right(c.Value, 4)
    End If
  Next
End Sub

セルの書式設定が「文字列」なら大丈夫ですが
そうでない場合、000012 が 12 となります。
その場合は
c.Value = "'" & Right(c.Value, 4)
としてください。

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

QExcel 文字列の前後に、特定の文字を付加したい

Excelで、ある列に不規則な文字列がならんでいます。
その文字列の前後に、いっせいに好きな文字を付加したいのです。
例えば、「AAA」という文字列の前後に
「BBBACCC」といったように
AAAといった文字列にBBBやCCCと一斉に付加したいです。
AAAはアルファベットや日本語等さまざまなのですが、
どうすればいいでしょうか?
教えてください。

Aベストアンサー

& で繋ぎます。

A1 セルの文字の前後に、ABC と DEF を付けたいなら、
別のセルに下記のような式を入れます。

="ABC" & A1 & "DEF"

Qエクセルで数字の頭に0を追加する方法はありますか?

エクセルのVLOOKUP関数を使って検索をしようと思いますが、
検索する番号が一つが6桁の番号で表示されており、もう片方が7桁の番号で表示されています。
つまり、6桁は頭に0が付いていなくて、7桁には頭に0が付いています。
【例】 6桁=123456、7桁=0987654

ですから同じ表示にしたいのですが、出来れば6桁の頭に0を付けたいのです。
【例】 6桁=123456 → 7桁=0123456

どうすれば、変換できるかよい方法がありましたら教えて下さい。よろしくお願いいたします。

なお、対象セルは3千個程あるので、とてもじゃないけど一個づつは出来ません。
また、当方素人なので出来れば判り易い方法でお願い致します。

Aベストアンサー

範囲選択をして右クリック
セルの書式設定
 ↓
表紙形式
 ↓
ユーザー定義
 ↓
種類のところに 0000000
と記入すれば頭に0が付きます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング