• ベストアンサー

特定の文字を連結し、余分なセルは削除したい

元々1つのセルに入力されているデータを、それぞれの値で集計するためMID関数で 分割していますが、特定の文字だけ左側のセルと連結をし、特定の文字だけ 入力されているセルは削除したいと思っています。 連結は「置換」で何とか出来たのですが、特定のセルを削除し、左にシフトする 何か良い方法はありますでしょうか? 宜しくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

ごめんなさい。回答No2でG2セルへの入力の式を間違いていました。次の式をG2セルに入力して下方にドラッグコピーします。 =IF(A2="","",SUBSTITUTE(A2&"/"&B2&"/"&C2&"/"&D2&"/"&E2&"/"&F2,"/★","★")) 他の操作はNo2のとおりです。

iwashigumo33
質問者

お礼

ありがとうございました。 置き換えと左にシフト両方できました。 助かりました。

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

その他の回答 (3)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.4

> 連結は「置換」で何とか出来たのですが、特定のセルを削除し、左にシフトする > 何か良い方法はありますでしょうか? 使えるならマクロでコリっとやるのが一番良いかもですね。 各行右から、 「★」だったら左の列に「★」を足して、自身を削除。 これをB列まで繰り返し、次の行へ、 次の行も右から同様に・・ で連結・削除の作業を一気に出来るかと思われます。 手動でやるなら、 > 連結は「置換」で何とか出来た とのことですから、以下の方法が有効かと。 「置換」後に、削除したい空白セルを含む範囲を指定しておいて ・F5(あるいはCtrl+G)でジャンプダイアログを表示 ・セル選択ボタンを押し、選択オプションダイアログを表示 ・空白セルを選択し、OK ・右クリックで削除、左方向へシフトを選択し、OK これで空白セルだけ全て削除できます。 図はかなり見づらいですが、 上段(A1:J3)を選択しておいて上記操作を行った結果です。 選択範囲内の「空白セルだけ」選択されているのが確認いただけるかと。 横から失礼しました。

iwashigumo33
質問者

お礼

ご回答ありがとうございました。

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

回答No1です。 例えばA2セルからD2セルまでの途中に★が有ってその後にも文字が入力されている場合にはNo1の解答の式では対応することができません。列が4列ではなくもっと多くなりしかも途中にいくつか★が有る場合にも対応できる方法としては次のようにすることでしょう。 仮にF列までを想定するとしたらG2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",A2&"/"&B2&"/"&C2&"/"&D2&"/"&E2&"/"&F2) G列を選択して「コピー」しH1セルを選択してから「形式を選択して貼り付け」で「値」にチェックをして貼り付けます。 その後にH列を選択してから「データ」タブの「区切り位置」をクリックします。 「カンマやタブなどの…」が項がアクティブのままで「次へ」をクリックします。 区切り文字の項でその他の項目の窓に / を入力して「次へ」「完了」と進んで終了します。 H列から右横の列にはお求めの表が表示されます。

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

お示しの表ではA列からD列までにデータが有って最後のセルのデータが★になっていますね。 最後だけが★ということであれば表の例では例えばお求めの表をF列からJ列までに表示させるとしてF2セルには次の式を入力してJ2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(AND(A2<>"",A2<>"★",B2<>"★"),A2,IF(AND(A2<>"",A2<>"★",B2="★"),A2&B2,""))

iwashigumo33
質問者

補足

ご回答ありがとうございます。 教えて頂いた数式で連結することはできました。 表では記載していなかったのですが、★の右側に文字が入る場合もあり、その場合は、もともと入っていた★のセルは削除し左にシフトしたいと思いますが、そのような方法はあるでしょうか?

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

関連するQ&A

  • Excel 特定の文字と連結

    右側のリスト内にある文字が対象文字の左側にある場合、 左側の文字と連結し、もともとあったセルは削除したいと思っています。 例)リスト内には「あ」~「そ」までが入力されています。   「あ」の右側にある文字は、「あ」が入力されているセルに連結し削除 出来ればVBA以外でお願いしたいのですが、何か良い方法は あるでしょうか? よろしくお願いいたします。

  • 文字列から、特定の文字を削除したい

    アンケートで入力された値を受け取り、メールで送信しているのですが、受け取った値から、特定の文字列を削除することは可能でしょうか? 例えば電話番号の入力の場合、 03-xxxx-xxxx →03xxxxxxxx 077-xxx-xxxx →077xxxxxxx のように、-(ハイフン)が入力されていたら、-を削除した文字列に置換してメール送信したいのです。 入力する時に、3つのテキストエリアに分けるのは諸事情でできないので、特定の文字を削除する関数か処理方法がありましたら、教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • EXCEL セル内の特定文字を抜き出したい

    sheet1のセル番号A1に 東京都江戸川区船堀タワー屋上 が入力されています。 次に、sheet2のA列に下記のような表があります。 A列 東京 大阪 沖縄 千葉 埼玉 青森 この場合で、 sheet2の表を検索値とし、sheet1のセル番号A1を検索して"東京"を 値として返したいです。 sheet2の表に入力されている検索値が1つなら、IF、SERCH、MID関数 を使って抜き出すことができましたが、検索値が複数、検索範囲が1 つのセル(SHEET1のA1内の文字列)の場合、検索できますでしょうか? ※IF、SERCH、MIDを使うと、すごく長い関数文になったので、できる  だけ、短い関数文だと助かります。 知恵をお貸しください。 よろしくお願いします。

  • エクセルで文字列の右から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(文字列の、何文字目から、何文字分)というもので、文字列の左から何文字目を先頭に、何文字分を表示ということで、私のやりたい事の逆なのです。いい方法を教えて下さい。

  • spread6.0(セル連結)

    下記のようなヘッダをSPREAD6.0で作成しようと思っています。    -----------         |    |    -----|----|     123 | |    -----|----|     456 | |    -----------         ↓    -----------       タイトル   |    -----|----|     123 | |    -----|----|     456 | |    ----------- ヘッダ部の連結を行いたいのですが、 設定方法がわかりません。 AddCellSpan関数でセル連結ができることはわかりましたが、値がわかりません。よろしくお願いします。

  • 関数 特定の文字列が別のセルに入っていたら1を表示

    メルマガのリストを整理しているのですが、O列のメルアドはもう使われていないメルアドのリストなので、一番左のマスタのリストから削除したいのですが、削除するために特定の文字列が別のセルに入っていたら1を入力するなどの関数があれば教えて下さい。 同じ行のメルアドが重複するかどうかではなくて、例えば一番左上の メルアドがO列の下の方に存在している可能性があります。 ですのでシンプルなIF関数では解決できませんでした。 よろしくお願いいたします。

  • エクセル 特定の文字を検索して置き換えるマクロ

    次のような連続作業をマクロでできますか。 A列にある特定の文字を検索して、その行にあるB列セルの文字(不定)とそのB列の1行下にあるセルの文字(不定)を連結または置換させてB列に表示 (それぞれ単独に使用) 例 A100に「○○○」の文字を見つけたら、B100にある「□□□□」とB101にある「△△」を連結させB100に「□□□□△△」と置換表示 置き換える場合 A100に「○○○」の文字を見つけたら、B101にある「△△」をB100に「△△」と置換表示 同列の置換は例題でも見つけられて利用できていますが、ひとつ下のセルがからむというのがミソです。 よろしくお願いします。 Windows7/office2013

  • 特定文字列以下のセル削除

    こんにちは。 特定の文字列を含むセルから5行削除するマクロを作りたいのですが、 どのようにするとよいでしょうか。 特定文字列は、各列に1つあり、行の位置はバラバラです。 その特定文字列を含み以下5行分のセルを削除し、上に詰めたいと考えています。 初心者ゆえ、ご指導ください。

  • Excelで未入力セルに一括で特定の文字を

    Excelについての質問です。 未入力セルに一括で特定の文字を入れたいのですがそんな関数をご存じないでしょうか? セルが未入力(空白)の場合、一括で「,*」を入れる、ということをしたいのです。 よろしくお願いいたします。

  • セルに入力したら、別の特定セルに文字表示させるには

    似たようなQ&Aはあったのですが、求めているものとは少し違うので質問させていただきます。 エクセルで、指定したセルに数値を入力したら、 別シートの特定セルに特定文字列を表示させる ということはできませんか。 例えば、sheet1のセルB3に「2」と入力したら sheet2のセルB5に「●」と表示 次に、sheet1のセルB4に「6」と入力したら sheet2のセルD11に「●」と表示 次に、sheet1のセルC3に「4」と入力したら sheet2のB9に「○」と表示           のようなかたちです。 sheet1の入力範囲は、B3:I85程度 sheet2の入力範囲は、B3:FZ170程度で、特定セルは重複しない 表示されるのは、「●」「○」などの文字列 です。 途中経過として、MATCH関数、ADDRESS関数を利用して sheet1のセルに数値入力をしたら sheet2の入力すべきセル番地を求めることまではできたのですが その求めたセルがすべて異なるので、それぞれのセルに移動させて 文字列を表示させることができずに困っています。 解決法をご存知の方、どうぞよろしくお願いいたします。

専門家に質問してみよう