• ベストアンサー

エクセルでセル内の任意の文字数を削除

皆さんこんにちは。 エクセルでセル内の右端から任意の文字数を削除 するにはどうすればいいのでしょうか? 例えば 幕の内弁当 28% いかめし 16% 栗めし 8% とある場合、右端のの28%、16%、8%を削除して 幕の内弁当 いかめし 栗めし と出したいのです。 RIGHTで3文字で出しても28%が出ますし LEFTではセル内の文字数が一定ではないので 出しにくいです。 よろしくお願いいたします。

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

  • ベストアンサー
  • JAPAN2004
  • ベストアンサー率28% (45/159)
回答No.1

LEN関数を使って、全体の文字数を把握します。 右の3文字を消したいので、 =MID(対象文字,1,LEN(対象文字)-3) でいかがでしょう。

snowflakes
質問者

お礼

JAPAN2004 さん 迅速、ご丁寧な 返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 MIDの使い方がとても勉強になりました。 #7でのLEFTでの解法も目から鱗の思いです! この方法で解決しました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (9)

回答No.10

はじめまして。 置き換えマクロはどうでしょう? ただ単純に、数値や”%”を無しに 置き換え作業してるだけです。 ----------------------------------------- Sub Macro1() Columns("A:A").Select Selection.Replace What:="0", Replacement:="" Selection.Replace What:="1", Replacement:="" Selection.Replace What:="2", Replacement:="" Selection.Replace What:="3", Replacement:="" Selection.Replace What:="4", Replacement:="" Selection.Replace What:="5", Replacement:="" Selection.Replace What:="6", Replacement:="" Selection.Replace What:="7", Replacement:="" Selection.Replace What:="8", Replacement:="" Selection.Replace What:="9", Replacement:="" Selection.Replace What:="%", Replacement:="" End Sub ----------------------------------------- A列すべてを選択してます。 どうでしょう?

snowflakes
質問者

お礼

missile_man さん 返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 置き換えマクロという方法があるのは知りませんでした。 本当に勉強になります! マクロのことは何もわからないのですが 置き換えマクロという解法を拝見していると簡潔で 有用なことが良くわかります。 使い方を習得すべくこれから少しずつ勉強していこうと思います!! 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#9284
noname#9284
回答No.9

スペースは文字とパーセンテージの間にしかない。 スペースは半角、または全角に統一してある。 のなら・・・ 範囲を選択し、Ctrlを押しながらHキーを押し、 置換ダイアログを出します。 置換する文字列→「 *」  全角(半角)スペースと半角アスタリスク 置換後の文字列→何も入れない ここでAltを押しながらAキーを押します。

snowflakes
質問者

お礼

hirorin2004 さん 返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 関数(?)を使わなくても解決できるのですね!! ずっとLEFT、RIGHTだけで悩んでおりました。 置換を使うのも考えたのですが結局解法がわからなかったのです。 非常に勉強になりました! 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • at121
  • ベストアンサー率41% (85/206)
回答No.8

文字列の置き換えを使うと セルC5 から セルB4 へ出力として RIGHT(C5,3)= "28%" が得られるなら B4=SUBSTITUTE(C5,RIGHT(C5,3),"") とすると "幕の内弁当 28%" の "28%" を ""に置き換えるので  "幕の内弁当 " ブランクがいらないので B4=TRIM(SUBSTITUTE(C5,RIGHT(C5,3),""))  で  "幕の内弁当" これだと 一応 "空白8%"もカバー マクロで 空白区切り Function 商品名(セル) セル行列 = Split(セル, " ", , vbTextCompare) 商品名 = セル行列(0) End Function Function 比率(セル) セル行列 = Split(セル, " ", , vbTextCompare) If UBound(セル行列) = 1 Then 比率 = Val(セル行列(1)) Else 比率 = "-" End If End Function として B4=商品名(C5)

snowflakes
質問者

お礼

at121 さん 返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 SUBSTITUTE、TRIMなどの使い方を寡聞にして知りませんでした。 エクセルは初心者ですのでマクロもやったことありませんがこれから少しづつ勉強していこうと思います!! ご丁寧なレス本当にありがとうございました。 また質問があるときにもよろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • JAPAN2004
  • ベストアンサー率28% (45/159)
回答No.7

#1です。 >=MID(対象文字,1,LEN(対象文字)-3) これは =LEFT(対象文字,LEN(対象文字)-3) こっちのほうがすっきりしてますね。

snowflakes
質問者

お礼

JAPAN2004 さん 再度の返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 LEFTでの解法に大変感動いたしております! あれほど悩んだあの時間がうそのようです。 MID、LEFTの使い方が大変勉強になりました。 また質問があるときもよろしくお願いいたします。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • dial8675
  • ベストアンサー率26% (42/159)
回答No.6

例の場合をやります。%を目印の記号に使います x=find("%","幕の内弁当 28%") で%が何文字目に出てくるか調べます。これをxとします。 その後、 left("幕の内弁当 28%",x-3) で%から3文字前まで取得できます。 微妙に空白文字列を含みますが。 どうでしょうか?

snowflakes
質問者

お礼

dial8675 さん 返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 FINDの使い方は知りませんでした。 LEFTとの組み合わせで解決できるのですね! LEFTであれほど悩んでいたのにこんなにも 簡潔に解決できるとは・・・ 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#9268
noname#9268
回答No.5

項目とxx%の間に半角スペースが1つあることが 保証されている場合は以下のように出来ます。 =LEFT(A1,SEARCH(" ",A1)) SEARCH関数で空白が存在する位置を取得し、 そこまでをLEFT関数で取得します。

snowflakes
質問者

お礼

mao_mao さん とても的確で簡潔なアドバイスありがとうございます! また、御礼が遅くなりまして済みませんでした。 項目とxx%の間にスペースがあるのです。 LEFTとSEARCHを組み合わせると解決できるのですね! 「こういった使い方をするんだ」というお手本は 非常に勉強になります。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • zakikko
  • ベストアンサー率40% (173/423)
回答No.4

幕の内弁当 28% の「幕の内弁当」と「28%」の間にはスペースがはいっていますか? であれば、 [データ]-[区切り位置]-[カンマやタブで~]-区切り位置をスペースにすれば、項目とパーセンテージが分割できますので、パーセンテージの列を削除してしまえばOKでしょう。 スペースで区切られていない場合はわかりません。 ごめんなさい。

snowflakes
質問者

お礼

zakikko さん 返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 「幕の内弁当」と「28%」の間にスペースが入っているんです。 関数(?)を使わなくても解決できるのですね! 勉強になりました。 また質問があるときもよろしくお願いいたします。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

もし全ての品名と%表示の間に全角スペースが入っているのであれば、A1に品名が入っているとして、 =LEFT(A1,SEARCH(" ",A1)) では、いかがですか。

snowflakes
質問者

お礼

SAKURAMYLOVE さん 返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 LEFTとSEARCHを組み合わせれば解決できるのですか!! エクセルは初心者な者ですごく勉強になります。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.2

FINDでメニューとパーセンテージ間のスペースの位置をまず抽出します。 その場合 =FIND(" ",A1) これで「幕の内弁当 28%」の場合「6」が帰ります。 後は、左から5文字分(6文字目はスペースなので)をLEFTで抽出します。 まとめると、こうなります。 =LEFT(A1,FIND(" ",A1)-1)

snowflakes
質問者

お礼

hirumin さん  返答ありがとうございます! また、御礼が遅くなりまして済みませんでした。 FINDの使い方をはじめて知りました。 組み合わせればLEFTでも解決できるのですね! 大変勉強になりました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA 任意の文字があるセルの行を削除したい

    エクセルVBAで、次のような作業をしたいのですが、記述がわかりません。 A200~A500のセルに任意の文字(たとえば「A」)が表示(一致)されていたら そのセルの行を削除する。 範囲は一定です。 よろしくお願いします。 WIndows7SP3/Excel2013

  • 文字列から指定の文字桁数を削除

    お願いします。 あるデータをエクセルに移したら、 データとデータがふっついてしましました。 もう、元のデータがなく今のエクセルデータで分解しなくてはなりません。 文字数が一定なら =left( , ) や =right( , ) で抽出できるのですが、これはこんな感じで文字数がばらばらです。 右から金額が一定でないのです。 一定なのは右から6文字得意先番号(000020,000021,000043,000004)です。 4411000020 7351000021 101000043 16801000004 13651000005 =right( , ) で別なセルに抽出はできるのですが、 左部の金額を別なシートに入れられません。 何とか教えてください。

  • EXCELでセルに入れる文字数の制限

    EXCELで文章と表が混在している書式をつくっています。 その時なのですが、セルに入る文字数を常に一定にしたいのです。 (Wordだと一行何文字と指定できるとおもうのですが) セルに入れる文字を制限数までとし、それを超えたら入力できないように設定できる方法はありますか? マクロを張り込まないとできないのでしょうか? 私はマクロのプログラムが全く書けないのでそれができません。 どうしたらよいでしょうか? また、その方法があるとして、それは結合させたセルにも有効でしょうか? ちなみに、EXCELにワードを張り込むという方法ではない方法を探しています。 よろしくお願いいたします。

  • Excel セル内の文字だけを取り出すには

    Excelの1つのセルに 01234 ABCDEFG のように、「数字5つ(固定)+半角スペース+(任意の数の)文字」 が入力されています。数値は必ず5桁と決まっていますが、 文字列の数はさまざまです。 関数で文字の部分だけ、別のセルに取り出したいのですが、 どの関数を使うとできますか?教えて下さい。 よろしくお願いします。

  • EXCELでセルに入れる文字数の制限

    文章が入力されてるエクセルデータがあります。 セルに入る文字数を常に一定にしてプリントアウトしたいです。 (Wordだと一行何文字と指定できるとおもうのですが) もう出来上っているエクセルデータから、セルに入れる文字を制限数までとし、それを超えたら自動的に消される方法はありますか? マクロを張り込まないとできないのでしょうか? 私はマクロのプログラムが全く書けないのでそれができません。 どうしたらよいでしょうか? 使う方が初心者なので、出来るだけその人が手をかけないようプログラムを作るか、設定したいのですが・・ ちなみにエクセルの機能で、入力規則はもう出来上ってるデータには適用されないようなので、それ以外でお願いします。

  • セルに入力できる最大文字数

    EXCELが表計算ソフトであることは認識しているのですが、ある目的で日本語文章を1つのセルの中に詰め込んでいます。正確に文字数を数えたわけではありませんが860文字から1100文字あたり(一定しません)まではきちんとセルの中に納まります。ところがそれを超えると、セルの中には納まりません(そのように見える)が入力した文字は消えないで残っています。ただし一度に見えないだけです。 (1)一体、セルの中には最大いくらの文字数が入力できるのでしょうか? (2)また、表示されない文字(見えない文字)を見えるようにするためにはどうすればよいでしょうか? (3)さらに見えなくなる限界(860字あたりから1100字)が一定でないのはどうしてでしょうか? よろしくご教授お願いします。

  • エクセルの1セルの最大文字数はいくつ?

    エクセルの関数、TRIM、JIS、ASC等を実行したら、#VALUE!が出てしまいました。 文字列(かなり長い)をTRIMで空白を削除し、JISかASCで全角、半角を統一しようと試みました。 上手くいきそうな感じでしたが、その中の4セルに【#VALUE!】と表示されました。 大部分はその処理が正しく実行されているのに、その4つのセルは何故、どうして?? そのセルを調べたところ、そこにはかなり長い文章(文字数)が入力されていたので、半分くらいカットして再実行してみたら、今度は正しく処理されました。 1セルに入っている文章(文字数)が多すぎたのでしょうか?  1セルには何文字(バイト)が許容されるのか、また、1セルで何文字(バイト)以上の場合は、関数は使用できない(通用しない)などの決まりはあるのでしょうか? 今回の場合は、24件で列も30列ぐらいでしたので、【#VALUE!】のエラーも気が付きましたが、これが何百件、数百列となると、エラーに気が付かないかもしれません。(気が付きにくくなります。) 1セルに入力できるおおよその文字数(バイト)は、いったいどれくらいなのでしょうか? お分かりの方がいらっしゃいましたら、アドバイスお願いします。

  • エクセルの1セル内で入力できる文字数

    エクセルの1セル内で入力できる文字数の最大値は何文字でしょうか?(何バイト?) 教えてください。

  • エクセルで1つのセルに入っている文字を分ける

    エクセルで、ふりがなの名前の一覧があります。 苗字と名前の間は必ずスペースが入っています。 この状態で苗字と名前を違うセルに分けることができるでしょうか? (フリガナなので、文字数が一定ではありません) │すずき いちろう│     ↓ │すずき     │いちろう  │ よろしくお願いします。

  • excelでセル内の改行を削除する

    excelの改行削除について質問です。 セル内の改行を一括削除する方法として「Ctrl」+「J」の 置換でできると思うのですが、文字がたくさん入っているセルに 対して行うと、「数式が長すぎます。」のポップアップが出てしまいます。 CLEAN関数で行おうとするも、文字数が多いためかきちんと表示されません。 他に何か良い方法はないでしょうか?

このQ&Aのポイント
  • eM Clientでは、メールの設定で特別なポート(レガシー)でSSL/TLSを使用する必要がある場合があります。
  • セキュリティポリシーに問題があるため、eM Clientではデフォルトで強制的にSSL/TLSを使用する設定になっています。
  • 特別なポート(レガシー)とは正確な定義はなく、他のメーラーでは通常のSSL/TLSで接続できている場合でも、eM Clientでは特別なポート(レガシー)を選択する必要があることがあります。
回答を見る

専門家に質問してみよう