• ベストアンサー

各セルを1列に並べたい

エクセル2000の質問です。 A1:C10のシートの各セルに文字データがばらばらに入っています。空白のセルもあります。これを1列に並び替えしたいのです。 たとえば あ,い,う,え,お, か,き,く,け,こ, を あ い う え お か き く け こ というように。結構大量に散らばっているので手間をかけずにできるとありがたいです。 よろしくお願いします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

No3,No4です。 すみません、また違ってました。今日はどうかしちゃってます。 やはりテストしないで書いちゃダメですねえ。 Sub test02() For i = 1 To Selection.Count n = n + 1 Cells(n + 10, "A").Value = Selection(i).Value Next End Sub これで選択された範囲のセルのデータがいくつでも、A11から下に向かって一列に自動で入力されます。 もしA11がまずければ Cells(n + 10, "A")の部分で調整してください。+20にすればA21から、"B"にすればB列になります。

poolplayer
質問者

お礼

おどろきました! 魔法のようです。 大変感謝いたします。ありがとうございました。

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

その他の回答 (7)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.8

配列計算です =IF(COUNTA(範囲)<ROW(),"",INDEX(範囲,ROUNDDOWN(SMALL(INDEX(IF(範囲<>"",ROW(範囲)*10+COLUMN(範囲),""),0,0),ROW())/10,0),RIGHT(SMALL(INDEX(IF(範囲<>"",ROW(範囲)*10+COLUMN(範囲),""),0,0),ROW()),1))) 式が長くなるので、A1:C10に[範囲]と名前を付けました D列以降の1行目に貼り付け[shift]+[Ctrl]+[Enter]で確定、下方向にコピーしてください。 1行目以外に貼り付ける場合はROW()の部分をROW()-(1行目の行数-1)にしてください。

poolplayer
質問者

お礼

どうもありがとうございました。

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

No.6への追記です。 No.6の式では元セルが空白セルの場合「0」を貼り付けます。 これを防ぐにはIF文で元セルが空白か否かを判断し、空白の場合は貼り付け先に空白を入れてやる必要が有ります。 式にすると↓こうなります =IF(OFFSET($A$1,INT((ROW()-1)/3),MOD(ROW()-1,3))="","",OFFSET($A$1,INT((ROW()-1)/3),MOD(ROW()-1,3)))

poolplayer
質問者

お礼

何度もスミマセンでした。 ありがとうございました。

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

No.1です。 並べ方の縦横を勘違いしていました。 どこかの列の1行目(例:F1セル)に↓を入れて30行目までコピーしてみてください =OFFSET($A$1,INT((ROW()-1)/3),MOD(ROW()-1,3))

poolplayer
質問者

お礼

お礼が遅れてスミマセンでした。 ありがとうございました。

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

No3です。 質問を読み間違えていました。 ではVBAでやってみます。 以下のコードを標準モジュールにコピペし Sub test01() For i = 11 To Selection.Count n = n + 1 Cells(i, "A").Value = Selection(n).Value Next End Sub データ範囲を選択してから、メニューの「ツール」、「マクロ」、「マクロ」で出てきた「test01」を選択して「実行」

poolplayer
質問者

お礼

お礼が遅れてスミマセンでした。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

A1:C10を選択してコピーします。 貼り付けたい先をクリックし、メニューの編集から、「形式を選択して貼り付け」を選びます。 「行列を入れ替える」にチェックをします。 「OK」ボタン 以上です。

poolplayer
質問者

お礼

「行列を入れ替える」 これでは1列になりませんけど?

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

失礼! 間違えました。これが正解↓ =OFFSET($A$1,MOD(ROW()-1,10),INT((ROW()-1)/10))

poolplayer
質問者

お礼

試してみました。 Aさん a b c Bさん d e f 0 0 0 0 0 0 0 0 a d 0 0 0 0 0 0 0 0 b e 0 0 0 0 0 0 0 0 c f 以上のようになりました。私の印象では6行に収まらないとおかしいように思えるのですが。 ご指導よろしくお願いします。

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

A11に↓を入れてA30までコピー =OFFSET($A$1,MOD(ROW(),10),INT(ROW()/10)) その後、A列をコピーして、形式を選択して貼り付けで値のみを貼りつける。これでいかがですか?

poolplayer
質問者

お礼

お礼が遅れてスミマセンでした。 ありがとうございました。

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

関連するQ&A

  • 複数のセルの文字列を;(セミコロン)を介してひとつのセルに文字列として結合するには?

    エクセルで以下のような事は出来るのでしょうか? 複数のセルの文字列を;(セミコロン)を介してひとつのセルに文字列として結合するには? 例) A  B  C     D    あ  い  う  →  あ;い;う ひょっとしたら同じような質問が無いかと思い、色々と探してみたのですが、見つけることが出来ませんでした。 大量のデータを入力する必要があり、大変困っています。 ご存知の方がおられましたら、ご教授頂けるとありがたいです。 宜しくお願いいたします。

  • エクセルのワークシート関数でA、B列不同数取得

    エクセルのワークシートA列とB列にデータがあります。 データは数値、文字列、空白です。エラー値はありません。 A列のセルと同じ行のB列のセルの値が同一でないA列データの個数(またばB列データの個数)を求めるワークシート関数はないでしょうか?(空白同士は同一とみなします。) C列などに作業列を作ってA、Bの比較をして求める方法はすぐに思いつきますが、作業列なしで求めたいのです。

  • セル内の文字列の差し替え

    マクロなど作れない初心者です、すみません。 セル内の文字列の差し替えをしたいのですが可能でしょうか? Sheet1のA1に「○」、A2に「×」、A3に「○ ×」 と入っているデータがあり、 Sheet2のA1に「=Sheet1!A1」と入れて 「○」と表示させているのですが、 そのSheet2のA1に 「○」がある場合には「含む」、 「×」がある場合には「含まず」、 「○ ×」がある場合には「含む」、 と表示させたいのですが 条件付き書式で「○を含むなら..」 表示形式のユーザー定義で「"含む"」などとしても 空白になってしまい表示されません。 このような特定の文字列を差し替えたいときには どのようにすればよろしいでしょうか? ちなみに「Sheet1」のシートの内容は変更できません..

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • 空白セルの削除と重複データの加算のマクロ

    シート1の文字列のデータの0又は空白のセルを取り除いて、並んでいる文字列の左と真ん 中の数が重複しているデーターは左端の数を加算して別のシート2のC10からC100のセルに抽出できるマクロを教えて下さい。データーの0は関数で空白にしたいと思っています。 データの並び方はこのままで重複するデーターの加算と空白のセルの削除を一回のマクロで実行したいのです。  E列               空白を削除    0-4-1              0-4-1         2-3-2              2-3-2         2-2-3              2-2-(3) 0                 2-2-(1) 2-2-1              4-1-9 4-1-9              2-1-7 2-1-7              2-2-3 0                 2-3-(5)                (数式がある空白セル)   2-3-(1)            2-2-3              2-3-(4) 0                 0-4-1 2-3-5 2-3-1 2-3-4 0-4-1 シート2のB列10~100に抽出 0-4-1 2-3-2 2-2-4 4-1-9 2-1-7 2-2-3 2-3-10 0-4-1 このように抽出したいのです。

  • エクセルで空白のセル列を削除したい

    こんにちは。よろしくお願いします。 エクセルの使い方で質問があります。 こういう使い方があるのかどうかわかりませんが、 たとえば Aデータ  10202 Bデータ  3343 Cデータ  90394 のようなテキストファイルからコピペして持ってきたデータ の空白の列をまとめて一括で削除したいのですが、 なにかいい方法ないでしょうか? よろしくお願いします。空白の列は規則的です。 2、3列 5、6列 89列目 のような感じで空白列があります。

  • 空白セルを空セルに置き換える方法(エクセル)

     Excelで、空白に見えるセルを、空のセルに置き換える簡単な方法を教えてください。  長さ0の文字列扱いである「""」のセルが多数散在してます。これを数値扱いの空セルに置き換えたいのです。一つひとつDelキーを押したのでは手間がかかります。  「エクセル 空白 削除」などの検索では同じ質問はみつかりませんでした。

  • 一つのセルの文字列を分解して別のシートへ

    いつもお世話になっております。 一つのセルの文字列を分解して別のシートの指定したセルに一文字ずつ入力したいと考えています。 (例)   A B C  D E       F ・・・・・・・・・・・    AD 1 2014/5/1 ・・・・   2014/5/6・・・・・・・・・・・2014/5/31 2 3               こ 4 5               ど 6 7               も 8                                 9               の 別シートには、祝日の一覧が作成してあり、一つのセル"こどもの日"のように入力してあります。 F1のセルが2014/5/6なので、別シートの祝日データからデータをとばして、F3のセルに"こ"、一つ飛ばしてF5のセルに"ど"、F6のセルに"も"のように自動で入力したいのですが(他の祝日も同じく)、そういったことはマクロで可能でしょうか? よろしくお願いいたします。

  • Excel2007で、特定のセルに入っている文字列と同じ名前の(同じブ

    Excel2007で、特定のセルに入っている文字列と同じ名前の(同じブック内の)シートの特定のセルの内容を引くにはどうしたらよいのでしょうか。 状況を具体的に申し上げますと、 シートのA1のセルに「伝票」という文字列が入っているとします。A2のセルに、「伝票」という名前の同一ブック内のシートのC3のデータを自動転記したいのです。 どなたかおわかりでしたら、ご教示いただけませんでしょうか。どうぞよろしくお願いいたします。

  • Excelで1つのセルに入れた複数行の長い文字列をセルの高さを変えずに表示したい

    こんにちは。 Excelについての質問です。 お分かりになる方がらっしゃいましたら教えていただけると幸いです。 Excelのシートに、何行かにわたる長い文字列をコピーしたものを 1つのセルに貼り付けて、全て表示させたいのです。 その時、シートの幅や高さは変えずに、 セル内で「Alt+Enter」で改行されてその高さに収まらない文字列は、 そのまま直下の空いているセルに表示させたいのですが、これは可能でしょうか。 「折り返して全体を表示する」はオフの状態です。 この設定で1行だけの文字列だと幅以上の文字列は自然に横の空白のセルに流れてくれますよね? これを、「Alt+Enter」の複数行ver.でやりたいのですが、 このようなことは可能なのでしょうか。 質問が分かりにくくて申し訳ありません。 他にも、いい方法をご存知でしたらアドバイスをお願いいたします。

専門家に質問してみよう