異なった列の特定行への一括置換方法

このQ&Aのポイント
  • ある文字について、異なった列の特定行への一括置換方法をご教示ください。
  • 以下の表には膨大なデータがありますが、特定の文字を各列の最後の文字に一括置換したいです。
  • 置換後の表では、特定の文字が各列の特定行に一括で置換されます。
回答を見る
  • ベストアンサー

ある文字について、異なった列の特定行への一括置換

以下の表があったとします。置換前の表中の×を各列の最後の文字に置き換えたいです。たとえば、A4の×は野菜、B2とB4の×は肉、など。実際には膨大なデータがありますので、一括で処理する方法をご教示いただけますと幸いです。よろしくお願いいたします。 【置換前の表】   A    B    C    D 1 りんご みかん ぶどう なし 2 みかん ×   ×    みかん 3 みかん ぶどう ×    × 4 ×    ×   ×    × 5 ぶどう なし   りんご  りんご 6 ぶどう みかん なし   なし 7 野菜   肉   穀物   魚 【置換後の表】   A    B     C    D 1 りんご みかん ぶどう なし 2 みかん 肉   穀物   みかん 3 みかん ぶどう 穀物   魚 4 野菜  肉    穀物   魚 5 ぶどう なし   りんご  りんご 6 ぶどう みかん なし   なし 7 野菜  肉    穀物   魚

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 途中に空白セルがない!という前提で・・・ Sheet1のデータはA1セルからあるとします。 別Sheetに表示してもよいのであれば Sheet2のA1セルに =IF(Sheet1!A1="","",IF(Sheet1!A1="×",INDEX(Sheet1!A:A,COUNTA(Sheet1!A:A)),Sheet1!A1)) という数式を入れ、列・行方向にオートフィルでコピーしてみてください。 >実際には膨大なデータがありますので・・・ とありますので、VBAで手っ取り早くやる方法です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column For i = 1 To Cells(Rows.Count, j).End(xlUp).Row - 1 If Cells(i, j) = "×" Then Cells(i, j) = Cells(Rows.Count, j).End(xlUp) End If Next i Next j End Sub 'この行まで ※ マクロの場合、一旦マクロを実行すると元に戻せませんので、 別Sheetでマクロを試してみてください。m(_ _)m

noeygnues
質問者

お礼

早速のご回答まことにありがとうございました。うまく行きました!!!凄いです。数千列のデータでしたので大変助かりました。誠にありがとうございました。

関連するQ&A

  • 文字列の置換

    AファイルのA1セルからBファイルのC1セルにデータを反映させたとします。 その際に以下のように文字列を複数置換させたいのです。 A1セル   C1セル りんご → みかん みかん → ぶどう なし  → 空欄 空欄  → 空欄 上記のようにセルのデータを複数置換することはできるのでしょうか? 又、置換できるならどの関数を使えばよいのでしょうか?

  • Excelでの文字列とりだしについて

    Excel(version2013)について質問です。 ある文字列を検索範囲内で検索し、みつかった場合、 その文字列を返すようにしたいです、どのような関数を使えば宜しいでしょうか。 例えば下記A列に検索したいリスト(りんご、ばなな、ぶどう)があり、 検索したい範囲がD1~E5とします。 その場合、B列に関数を使った式を入れ、 りんご、ばなな、空文字、りんご、ぶどうと並ぶようにしたいです。 どのような関数を使えば宜しいでしょうか。       A         B      C      D        E 1  りんご   (式)        りんご  みかん 2  ばなな  (式)        ばなな すいか 3  ぶどう   (式)        すいか みかん 4              (式)        りんご  すいか      5              (式)        ぶどう  みかん                                      

  • エクセル 同名の場合はB列にC列の数値を入れたい!

     A列  B列   C列     D列 りんご        50    みかん みかん        30    ぶどう いちご        20    ばなな ぶどう        40    りんご ばなな        60     いちご ↑上記のような表があります。 もしA列とD列が同名であればC列の金額をB列に表示したいのですがよい関数はありますでしょうか?? おわかりの方教えてくださーい!

  • エクセル 複数セル 文字の統合

    エクセルで,次のような操作ができないかとご相談です。 セル  A   B    C    D    E     F    結合セル 品名 りんご みかん  なし  りんご  みかん  ぶどう  りんご2,みかん2,なし,ぶどう 結合セルには,「&」と”,”を使って「りんご,みかん,なし,りんご,みかん,ぶどう」とはできるのですが,重なりのある言葉に関しては,まとめて数字にできないかと思っております。 何かよいお知恵は無いでしょうか?ご教授いただければ助かります。

  • 秀丸でまとめて置換

    いつもお世話になっています。 下記のようなリストがあります。 list.Add リンゴ みかん ブドウ list2.Add リンゴ みかん ブドウ list3.Add リンゴ みかん ブドウ list4.Add リンゴ みかん ブドウ list5.Add リンゴ みかん ブドウ list.Add~list5.Add(実際には5よりもっとあります) これをまとめて置換で取っ払いたいんですが方法はあるでしょうか?

  • セル内の文字列に複雑な処理をしたい

    セルの中の複数の異なる文字列を以下のように処理したいのですが、Excelの標準の文字列操作の関数で試行錯誤してみたのですが、どうもうまくできませんでしたので、ご存知の方がいらっしゃいましたらご教授ください。VBAで処理しないとできないかもしれませんがよろしくお願いします。 あるリストのC列に備考欄が設けてあり、次のようなデータが入っています。 4/30 みかんを買った(強制改行して) 5/1 りんごを売った 5/2 ぶどうを食べた 5/5 すいかを買った このセルを調べて、 (1) セル内に"みかん"と"りんご"という文字列があったら、これを取り出して、右隣のセルに表示           (結果)⇒ みかん りんご (2) セル内に"みかん"と"りんご"という文字列があったら、これを"A","B"に置き換えて、右隣のセルに表示          (結果)⇒ A B (3) セル内の数値データと"を食べた"、"を買った"、"を売った"を取り除いて、右隣のセルに表示          (結果) ⇒ みかん りんご ぶどう すいか   (4) セル内に"か"を含む文字列があったら個数に関係なく"A"に置換して右隣のセルに表示             (結果) ⇒ A   すべて取り出したい文字列(上の例ではみかん、りんご)や置換したい文字列(A、B)以外の文字列は全てクリアして表示しないようにします。少し複雑ですが、やり方をご存知の方がいらっしゃいましたら、お教えください。

  • EXCEL VBA 複数列を2列にまとめる

    下記のようなデータ(列数も行数も常に変わり、固定ではない)を ┌───────────────── │ A 列  | B列   | C列   | D列 ├─────────────────── │ 1 │伝票01 │品名01 | 品名02 │品名03 ├─────────────────── | 2 │0011 │みかん │みかん | りんご ├─────────────────── │ 3 │1001 │りんご  │いちご |    ├─────────────────── │ 4 │1100 │いちご  │みかん | ぶどう  └─────────────────── ↓のように2列にまとめる方法はございますでしょうか?VBAを希望しております。   よろしくお願い申し上げます。 ┌───────────────── │ A │ B   ├───────────────── │ 1 │伝票  │品名 ├───────────────── │ 2 │0011_品名01 │みかん  ├───────────────── │ 3 │1001_品名01 │りんご    ├───────────────── │ 4 │1100_品名01 │いちご ├───────────────── │ 5 │1001_品名02 │みかん  ├───────────────── │ 6 │1100_品名02 │いちご  ├───────────────── │ 7 │1001_品名02 │みかん  ├───────────────── │ 8 │1100_品名03 │りんご  ├───────────────── │ 9 │1001_品名03 │  ├───────────────── │ 0 │1001_品名03 │ぶどう  ├─────────────────

  • あるセルの文字列が条件で、あるセルに色を設定するには?(2)

    例えば、下のような表で      A      B      C       D      1   商品名   数量     名前    2   りんご     2     さとう 3   みかん     1     さとう     3 4   ぶどう     1     すずき 5   ばなな     2     すずき     3 6   みかん     3     たなか 7   りんご     2     たなか 8   ぶどう     2     たなか     4 「みかん」という商品名の時だけ、C列の重複している名前の一番下のセルに、黄色を設定したい場合は、どうしたらよいのでしょうか? つまり、セルC3とC8に色をかけたいのです。不可能でしょうか(-_-;)ちなみにD列は、重複している名前の一番下の行に合計が出る関数が入っています。一番下が難しいなら、みかんの商品があるうちの重複している名前(さとう・たなか)すべてに色がついてもかまいません。 どなたかいい方法があれば教えてください。よろしくお願いします(>_<)

  • エクセルで列Aの同じ値のものを15行ずつ表示したい

    「エクセルで同じ列の値のものを15行ずつ表示したい」というタイトルではきちんと表現できませんでしたが、 以下のことはできますでしょうか?    A   B   C 1 りんご  1   100  ・・・ 2 りんご  9   100  ・・・ 3 みかん  4   70  ・・・ 4 なし   3   110  ・・・ 5 なし   1   110  ・・・ 6 なし   5   110  ・・・ といったシートがあるとします。 これを「A」の列を基準に15列ずつに分けたいと思います。    A   B   C 1 りんご  1   100  ・・・ 2 りんご  9   100  ・・・ ・・・15まで空白 16 みかん  4   70  ・・・ ・・・30まで空白 31 なし   3   110  ・・・ 32 なし   1   110  ・・・ 33 なし   5   110  ・・・ ・・・45まで空白 何かよい方法があれば教えてください。 よろしくお願いいたします。

  • エクセルでカウントした数を特定のセルに入力したい

    エクセルの関数について質問させてください。 A列  B列   C列 8/9       リンゴ 8/10      ミカン 8/11      リンゴ 8/12      ブドウ 8/13      ミカン 8/14      リンゴ 8/15      ブドウ 上記のような表で、C列でカウントしたリンゴの数を 前日の日付の行の、B列に入力したいのです。 ※今が8/10だとすると、リンゴの数「3」を  8/9の行のB列の欄に入力したい。 COUNTやCOUNTIFSで色々試してみたのですが、 どうしてもうまくいきません。 どうぞ宜しくお願いします。

専門家に質問してみよう