• ベストアンサー

エクセルでこんなことできないでしょうか?

エクセルでこんなことできないでしょうか? A列 B列 1  あ 1  い 2  う 2  え 2  お 3 か 3 き となっている場合、 A列で同じ値のものについては、B列で文字列を結合する、というものです。 つまり、 A列 B列 1 あい 2 うえお 3 かき としたいのですが・・・こんなことは可能でしょうか?

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

文字列を,ただ結合するだけじゃなく「上手に操作する」上手い関数は,実はあんまりありません。 という訳で。一発仕事なら次の通りに操作してみてください。 ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを選ぶ 現れたシートに下記をコピー貼り付ける sub macro1() dim i for i = range("A65536").end(xlup).row to 2 step -1 if cells(i, "A") = cells(i - 1, "A") then cells(i - 1, "B") = cells(i - 1, "B") & cells(i, "B") cells(i, "A").entirerow.delete end if next i end sub ファイルメニューから終了してエクセルに戻る データの入れてあるシートを開く ツールメニューのマクロのマクロで,今登録したマクロを実行する。 #もしも あなたが,よく見かけるご相談のようでなく丁寧に作業列を準備して順番に作業を進めていくことを厭わない人であれば,次のように簡単な関数だけを組み合わせて進めていくことでも出来ます。 添付図: A2 =IF(OR(B2="",B1=B2),"",COUNT($A$1:A1)+1) E2 ==IF(B2=B3,C2&E3,C2) G2 =IF(ROW(G1)>MAX(A:A),"",ROW(G1)) H2 =IF(G2="","",VLOOKUP(G2,A:E,2)) I2 =IF(G2="","",VLOOKUP(G2,A:E,5))

その他の回答 (3)

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

次のような方法もありますね。 シート1のA2セルから下方に1,2などの数値があり、B2セルから下方にあ、い、うなどがあるとします。 C2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(A1<>A2,B2,C1&B2)) シート2にお求めの表を作るとしてA2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>MAX(Sheet1!A:A),"",ROW(A1)) シート2のB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(A3<>"",INDEX(Sheet1!C:C,MATCH(A2+1,Sheet1!A:A,0)-1),INDEX(Sheet1!C:C,MATCH(A2,Sheet1!A:A,0)+COUNTIF(Sheet1!A:A,A2)-1)))

k-ss_wbr
質問者

お礼

ありがとうございました! できました!

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

関数で対応するなら、一部条件付きとなりますが、PHONETIC関数を使うことで文字列を結合できます。 準備として、B列を選択して「書式」「ふりがな」「設定」で「ひらがな」にチェックを入れておきます。 元データがA列とB列にあり、C1セル以下にA列の検索条件が入力されているならD列に以下の式を入力し下方向にオートフィルします。 =PHONETIC(OFFSET($B$1,MATCH(C1,A:A,0)-1,0,COUNTIF(A:A,C1),1)) B列のデータに漢字が入っている場合は、B列のデータ範囲を選択してコピーし、ワードなどにいったん貼り付けて、エクセルに貼り戻してふりがな情報を削除してください。 エクセル上だけでふりがな情報をなくしたいなら、Officeクリップボードを表示しておいて、B列のデータ範囲をコピーし、どこか空白セルをダブルクリックして編集モードにしてから、Officeクリップボードの内容を貼り付け、このセルの数式バー上の文字列をドラッグして選択し、元のデータ範囲に貼り付けてください。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

同じシート上のA列、B列に編集結果を出すのは仕掛け面倒なので 新しくシートを用意しそこのA列、B列に結果を表示させるというのはどうでしょうか?。 これならまだ回答のバリエーションがあると思います。 なお 別途ACCESSがあればこの問題は標準機能(クロス集計クエリ)で対処できます。

関連するQ&A