• ベストアンサー

エクセルの並べ替えについてできるか教えて下さい。

下記のエクセルの並べ替えをしたいと考えていますが、どのような方法がありますか教えて下さい。   A B 1 ○ 3 2 △ 5 3 □ 2 4 ○ 4 5 △ 3 6 □ 2 7 ・ ・ 8 ・ ・   A B C 1 ○ △ □ 2 3 5 2 3 4 3 2 4 ・ ・ ・ 5 ・ ・ ・ 上側を下側のように項目毎(○△□)に列としてデータを並べたいのですが、難しいでしょうか。 いつも項目で並べ替えてデータをコピペしていますが、非常に項目数が多いので時間がかかりすぎて困っています。列にするのはデータで推移グラフを作るためです。 宜しくお願いします。 (エクセルはそんなに得意ではありません。)

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

  • ベストアンサー
回答No.1

A列が規則正しいなら D2セル =INDEX($B:$B,ROW(A1)*3-3+COLUMN(A1)) 右へ下へオートフィル X,Y座標を考えるといいかも

v8bt
質問者

お礼

早急に回答頂きありがとうございました。この式を使えはできそうです。ちょっと私には難しいため式の理解から始めます。

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

その他の回答 (6)

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

たびたびごめんなさい! No.2です 確かに仰っている通りでピボットテーブルでは希望通りにはならないと思います。 すでに他の方が回答されていますが、オートフィルタが一番簡単な感じがします。 それぞれの項目を抽出して数値だけをそのままコピーでOKだと思います。 ただし、○・△・□等の項目の行より下か又は他のSheetにコピーしないとフィルタをかけるとコピーしたものが消えることがあります。 また、一つの項目のコピーが終わるとそのたびにEscキーを押さないといけません。 最終的にコピーできた表を移動させてやるのが一番いいかと・・・ どうもこんな回答で申し訳ございませんm(__)m

v8bt
質問者

お礼

いえいえ、返信頂きありがとうございます。 ピボットテーブルでできそうなのに残念です。 他の方のアドバイスも含めていろいろ試してみます。

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

>ちょっと私には難しいため式の理解から始めます。 なのでちょっと説明。 (あくまで順序よく並んでいる場合です) ROW(A1) は行番号を返します。つまり1。ROW(A2)なら2 COLUMN(A1) は列番号を数値で返します。つまり1。COLUMN(B1)なら2 ちなみに、ROW()はその数式を書いてあるセルの行番号となり 同様に、COLUMN()はその数式を書いてあるセルの数値化した列番号となります。 D列だけ見ると3つ飛びで値を拾っています つまり、行番号が増えるにつれ+3される。 それが*3の意味 E,F列も同様です。 COLUMN(A1)は初期値 最初にどの行を拾うかです 参考まで

v8bt
質問者

お礼

丁寧に説明頂きありがとうございます。大分わかりました。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

A列の○△□の出現数と内容が3行おきと規則正しいなら、関数でも出来る。 VBAでやるほうが素直な考えで出来るが、考えていないだろうね。 この質問は時どきでるありふれたものです。 例 B列 B2以下に 1 2 3 4 5 6 7 8 9 ーー E2に =INDEX($B$2:$B$100,(ROW()-2)*3+COLUMN()-4) と入れて右へ3列式複写。 E2:G2を下方向に式を複写。 結果 1 2 3 4 5 6 7 8 9 式で注意 COLUMN()-4の4はE列から結果を出しているからー4しているもの。 ROW()-2のー2は第2行目からデータがあるとしているため。

v8bt
質問者

お礼

早急に回答頂きありがとうございました。一度試してみます。ちょっと私には難しいため式の理解から始めます。式の詳細を説明頂き非常に助かります。

すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

試しに、配列関数ですが、    A  B  C  D 1     ○ △ □ 2 ○ 3 3 △ 5 4 □ 2 5 ○ 4 6 △ 3 7 □ 2 と準備したとして C2セルに =IF(COUNTIF($A:$A,C$1)>=ROW(A1),INDEX($B:$B,SMALL(IF($A$2:$A$7=C$1,ROW(A$2:A$7),""),ROW(A1))),"") Ctrl+Shfit+Enter押して決定 右へコピィ、下へコピィ

v8bt
質問者

お礼

早急に回答頂きありがとうございました。一度試してみます。ちょっと私には難しいため式の理解から始めます。

すると、全ての回答が全文表示されます。
  • chiezo2005
  • ベストアンサー率41% (634/1537)
回答No.3

オートフィルタを使うのはどうでしょう。 A1を選択しておいてデータ→フィルタ→オートフィルタ 1列に矢印がでますので,それをクリックして ○を選択すると A列が○のところだけになりますので, B列を選択, べつのシートに貼り付ければ,○のところの数字が列に貼り付けられます。

v8bt
質問者

お礼

早急に回答頂きありがとうございました。一度試してみます。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! ピボットテーブルではダメでしょうか? データすべてを範囲指定(この場合タイトルセルも指定する)  → データ → 「ピボットテーブルと・・・」を選択 項目を列フィールドへドラッグ・値をデータアイテム部にドラッグ これで横に○・△・□の合計した表が出来るはずです。 このままではグラフにすると積み上げグラフになるとおもいますので 表をコピー → 形式を選択して貼り付け(値にチャック) コピーした表を元にグラフにすれば希望通りのグラフになると思いますが・・・ もし見当違いの回答であればごめんなさいm(__)m

v8bt
質問者

お礼

早急に回答頂きありがとうございました。 私もピボットテーブルをたまに使いますが、思いつきませんでした。 ただ、今試していますが、項目の方は良いのですがデータがデータ数の合計数で生データが列として表示されません。 表をコピー → 形式を選択して貼り付け(値にチャック)をしても合計数が張り付くだけですが、私のやり方がまずいのでしょうか? いろいろデータの合計数でなく生データが表示できないか試しています。

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

関連するQ&A