• ベストアンサー

Excelで並べ替え

島田 1 a 島田 4 b 橋本 1 c 橋本 2 d 松田 1 e 松田 3 f 松田 4 g 岡部 2 h 岡部 3 I といったデータを ________1 2 3 4 島田 a     b 橋本 c d     松田 e   f g 岡部   h I   のように表示したいのですが、宜しくお願いします。

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

  • ベストアンサー
  • macchan1
  • ベストアンサー率38% (52/136)
回答No.2

名前がA列に数字がB列英語がC列にあり、下の一覧表の名前がD2セル以下、1~4までの数字がE1セルから右方向に入力されている場合、以下の式をE2セルに入力して下方向及び右方向にオートフィルします。 =IF(SUMPRODUCT(($A$1:$A$100=$D2)*($B$1:$B$100=E$1))=0,"",OFFSET($C$1,SUMPRODUCT(($A$1:$A$100=$D2)*($B$1:$B$100=E$1)*ROW($A$1:$A$100))-1,0,1,1))

junjunjujujun
質問者

お礼

へーーーーー!  式1発でできるのですね。SUMPRODUCTやOFFSETやROWなど、今まで知らなかったもので、今後役に立ちそうな関数も勉強できて大変よかったです。ありがとうございました。

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

その他の回答 (4)

回答No.5

A列に名前が入力されているとしたら、 表を1列右にずらし、新しいA列を作業列にします。 A1に =B1&C1 これを下までコピー。 E2から下に 島田 橋本 松田 岡部 (これも関数で処理したい場合、また書いてください) F1から右に 1 2 3 4 F2に =IF(ISERROR(MATCH($E2&F$1,$A$1:$A$9,0)),"",VLOOKUP($E2&F$1,$A$1:$D$9,4,0)) この数式を縦横にコピー。

junjunjujujun
質問者

お礼

ありがとうございました。今度はISERRORにMATCHにVLOOKUPですか。色々な方法があって、おもしろいですね。勉強になります。

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

VBAでやってみました。 元表、書き出し位置は適当に変更して下さい。 Public Sub 並べ替え() Dim s As Range '元の表の左上 Dim d As Range '作成表の位置 Dim r, loc Dim max Dim name, i Set loc = CreateObject("Scripting.Dictionary") Set s = Sheets("Sheet1").Range("A1") Set d = Sheets("Sheet2").Range("A1") r = 0 max = 0 '書き出し側のクリアは、されていると想定する Do Until s.Offset(r).Value = "" '空行になるまで name = s.Offset(r).Value If max < s.Offset(r, 1).Value Then max = s.Offset(r, 1).Value '数値データの最大を記憶する If Not loc.Exists(name) Then '新しい名前 loc.Add name, loc.Count + 1 '書き出す行の位置を登録(+1は項目行を+1する) d.Offset(loc.Item(name), 0).Value = name End If d.Offset(loc.Item(name), s.Offset(r, 1).Value).Value = s.Offset(r, 2).Value r = r + 1 Loop For i = 1 To max d.Offset(0, i).Value = i Next End Sub

junjunjujujun
質問者

お礼

ありがとうございました。VBAはまだまだ勉強足らずなので後々解読させていただきます。

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

関数を使った並べ替えの例です。 【条件】 (1)データは、Sheet1にB1~D9まで以下の形ではいっているものとします。 (2)並べ替えるシートをSheet2とし、質問のような形式とします。 (B列から1,2,3,・・・とし、2行目から島田、橋本、松田、・・・とする形式) (3)データに重複はないものとします。 【手順】 (1)Sheet1のA列を作業用とし、A1に以下の式を入力し、A9までコピーする。 A1=B1&C1 必要であれば、A列は非表示にしておく。 (2)Sheet2のB2に以下の式を入力し、以下全セル(B2~E5まで)コピーする。 =IF(COUNTIF(Sheet1!$A$1:$A$9,$A2&B$1)=0,"",VLOOKUP($A2&B$1,Sheet1!$A$1:$D$9,4,0))

junjunjujujun
質問者

お礼

COUNTIFとVLOOKUPを使ったやり方ですか。単純で理解しやすいです。ありがとうございました。

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

島田1aは同じセルに入っているデータですか? それとも別セルでしょうか?

junjunjujujun
質問者

補足

別のセルです。宜しくお願いします。

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

関連するQ&A

  • excel 関数作成の簡素化 ?

    A B C D E F G H I J 1784 1784 1781 1782 1809 1813 1821 1813 1784 1784 (1)A-B B-C C-D D-E E-F F-G G-H H-I I-J (1)0 3 -1 -27 -4 -8 8 29 0 (2)=SUMIF(A:I,">0",A:I) で 40になる 上記の(1)を使用せず (2)のように一気に出来ないか? もしも 表示が悪ければ 書き直し する為 回答不要

  • excelでの行列データの並び替え

    excelで表形式のデータの並び替えをおこないたいのですがいい方法が思いつきません。 どなたか教えて下さい。 具体的には 元のデータは以下の様なフォーマット a b c d e f g h i これを並び替えて a b c d e f g h i としたいということです。 元データの列数は決まっていますが 行数は任意です。

  • エクセル マクロでセルを自動移動

    例1のようになっているエクセル表があります。 データは右方向、下方向へ増えます。 Cの列以降は4つ単位でしかデータは増えません。 それを例2の表のように列A,Bのデータはそのままに Cの列以降の4つのセルを区切りに下の行に移動して、 空白の列まで言ったらA2の行以降を最後の行まで繰り返しするという マクロを書くことは可能でしょうか。 出来ましたらそのマクロを教えてください。 例1 A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3 M3 N3 例2 A1 B1 C1 D1 E1 F1 A1 B1 G1 H1 I1 J1 A1 B1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 A2 B2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 A3 B3 G3 H3 I3 J3 A3 B3 K3 L3 M3 N3

  • Excelに関する質問です。

    Excelで x 1 2 3 4 5 6 7 8 9 y a b c d e f g h i と各セルに横に打ち込んだところを x y 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h 9 i と縦に打ち直したいのですが何か一発で変換できる方法ってありますか?

  • ツリー情報のデータをSQLで取得したい

    SQLServer 2008 です。 以下のツリーデータの場合に A ┬C │├D ┬H ││ ├I ││ └J │└E B ┬F ┬I  │ └L  └G 次のようなデータを登録しています。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │B  │F  │"F" │ ├──┼──┼──┤ │B  │G  │"G" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ ├──┼──┼──┤ │F  │I  │"I" │ ├──┼──┼──┤ │F  │L  │"L" │ └──┴──┴──┘ 引数OYA="A"でSQLを実行した場合に 以下のような この引数を含むそれ以下のツリーに関する データを取得する方法を教えてください。 ┌──┬──┬──┐ │OYA │KO │Data│ ├──┼──┼──┤ │A │C  │"C" │ ├──┼──┼──┤ │A  │D  │"D" │ ├──┼──┼──┤ │A  │E  │"E" │ ├──┼──┼──┤ │D  │H  │"H" │ ├──┼──┼──┤ │D  │I  │"I" │ ├──┼──┼──┤ │D  │J  │"J" │ └──┴──┴──┘

  • エクセルについて

    エクセルで A B C D E F G H I J K L M N O P Q R … と並んでいるデータを A B C D E F G H I J K L … のように並べ変えたいのですが、最も効率のよい方法を教えてください。 上記のアルファベット1つにセル1つです。 Office2007を使用しています。 以上、宜しくお願い致します。

  • エクセル、任意の「行」だけを抽出したい。

    こんなことできますか? A1:F100のセル内にランダムに数字が入っています。 質問1) この中から 1行目→3行目→5行目と一つ飛ばしで入っているデータを抽出してH1:M100の範囲内に表示させるにはどのような操作をすればいいのでしょうか?関数とかで簡単に抽出表示させる技とかあればいいのですが・・・。 A1-B1-C1-D1-E1-F1 A2-B2-C2-D2-E2-F2 A3-B3-C3-D3-E3-F3 A4-B4-C4-D4-E4-F4 A5-B5-C5-D5-E5-F5 A6-B6-C6-D6-E6-F6 A7-B7-C7-D7-E7-F7 ・・・ A100-B100-C100-D100-E100-F100 の中から A1-B1-C1-D1-E1-F1 A3-B3-C3-D3-E3-F3 A5-B5-C5-D5-E5-F5 ・・・ を抽出して H1-I1-J1-K1-L1-M1 ・・・ H100-I100-J100-K100-L100-M100 の範囲内に表示させたいです。 質問2) 同様に、 1行目→4行目→7行目と二つ飛ばしで入っているデータを抽出してO1:T100の範囲内に表示させるにはどのような操作をすればいいのでしょうか?関数とかで簡単に抽出表示させる技とかあればいいのですが・・・。 ※ 説明がわかりにくいかもしれませんが、よろしくお願いします。

  • Excel:縦横入れ替えの応用

    Excelでの質問です。 WinXPでExcel2003を使用しています。 データは以下のように並んでいます。    A B 1) Aさん 2) Bさん 3) Cさん 4) 5) Dさん 6) Eさん 7) 8) Fさん 9) Gさん 10) Hさん 11) Iさん このデータを↓のように並び替えたいのですが・・・    A B C D 1) Aさん Bさん Cさん 2) 3) 4) 5) Dさん Eさん 6) 7) 8) Fさん Gさん Hさん Iさん 9) どうにもこうにもうまくいかないので教えてください。 既出だったらすみません。 よろしくお願いします。

  • エクセル 3列おきに列を挿入したい

    いつもお世話になります。 1行目に営業所コードがあり、そのコードを3列おきに表示するにはどうしたらいいでしょうか。   A  B  C  D  E  F  G  H  I  J   2   3   4   5   7   8  11  12  14  15              ↓   A  B  C  D  E  F  G  H  I  J   2          3         4         5 営業所コードは2~150の数字で、100ほどの営業所コードが存在します。 よろしくお願いします。

  • エクセルデータの並び替え

    A列に 1 2 3 4 5 6 7 ・・・・・ B列に a b c d e f g h i j k l ・・・・ と文字列があります。 これを C列に 5つずつデータをセットにして並べたいのです。 A列    B列           C列 1     a      1 a   2 b  3 c  4 d  5 e 2     b      6 f   7 g  8 h  9 i  10 j 3     c      11 k  12 l  13 m  14 n  15 o 4     d      16 p   17 q  18 r  19 s  20 t 5     e      以下同じように続く 6     f 7     g 8     h 9     i 10     j 11     k 実際のC列のデータは トマト tomato  ネコ cat   机 desk  いす chair  かばん  bag  のようにしたいのです。 関数の扱いがわからずに苦戦しています。どうぞ、よろしくお願いします。

このQ&Aのポイント
  • MFC-J998DNで紙詰まりと異音のトラブルが発生しています。紙を取り除いた後に印刷するとガタガタという異音がするだけでなく、紙詰まりも繰り返しています。ローラークリーニングシートを使用してクリーニングしましたが、問題は解決されていません。
  • MFC-J998DNの紙詰まりと異音の問題を解決する方法を教えてください。紙詰まりを解消した後に印刷すると異音が発生するため、印刷品質にも影響があります。ローラークリーニングシートを使用しても問題は改善されませんでした。
  • MFC-J998DNの紙詰まりと異音のトラブルについて相談です。紙詰まりを取り除いた後に印刷するとガタガタという異音が発生し、紙詰まりも頻繁に発生しています。ローラークリーニングシートを使用しても問題が解決されないため、具体的な対処方法を知りたいです。
回答を見る

専門家に質問してみよう