• ベストアンサー

Excelで並べ替え

Excelのデータを並べ替えたいのですが 「形式を選択して貼り付け」の「行列を入れ替える」ではできません。 1行目は項目名があります。 A2からA12のセルに「あ」、A13からA23のセルに「い」と入力されています。 B2からB12のセルにはそれぞれ異なるデータが、B13からB23のセルにもそれぞれ異なるデータが入力されています。 これを A2に「あ」を表示させて、B2からB12のセルに入力されているデータを 「あ」の右へ横並びに A3には「い」とB13からB23が「い」の右へ横並びに 表示させたいのですが、方法がわかりません。 どのようにしたらできるでしょうか? どうぞよろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

あ、い、う、えの4つ、項目数字3つの例です。 データはSheet2にたまたま入れています。 A2:A13にあいうえを3回貼り付けます。 B2に =INDEX(Sheet2!$B$2:$D$100,MOD((ROW()-2),4)*11+COLUMN()-1,INT((COLUMN()-2)/11)+INT(ROW()-2)/4+1) と入れて B3:B13に式を複写します。 B2:B13をC2:L13まで式を複写します。 結果 あ a11 a12 a13 a14 a15 a16 a17 a18 a19 a20 a21 い i11 i12 i13 i14 i15 i16 i17 i18 i19 i20 i21 う u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 え e11 e12 e13 e14 e15 e16 e17 e18 e19 e20 e21 あ a21 a22 a23 a24 a25 a26 a27 a28 a29 a30 a31 い i21 i22 i23 i24 i25 i26 i27 i28 i29 i30 i31 う u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 え e21 e22 e23 e24 e25 e26 e27 e28 e29 e30 e31 あ a31 a32 a33 a34 a35 a36 a37 a38 a39 a40 a41 い i31 i32 i33 i34 i35 i36 i37 i38 i39 i40 i41 う u31 u32 u33 u34 u35 u36 u37 u38 u39 u40 u41 え e31 e32 e33 e34 e35 e36 e37 e38 e39 e40 e41 元データ(1部省略)Sheet2のA1:D45 項目1 項目2 項目3 項目4 あ a11 a21 a31 あ a12 a22 a32 あ a13 a23 a33 あ a14 a24 a34 あ a15 a25 a35 あ a16 a26 a36 あ a17 a27 a37 あ a18 a28 a38 あ a19 a29 a39 あ a20 a30 a40 あ a21 a31 a41 い i11 i21 i31 い i12 i22 i32 い i13 i23 i33 い i14 i24 i34 い i15 i25 i35 い i16 i26 i36 い i17 i27 i37 い i18 i28 i38 い i19 i29 i39 い i20 i30 i40 い i21 i31 i41 これで質問に合っていると良いが。 しかしVBA向きの問題と思う。

lehua
質問者

補足

早速のご回答ありがとうございます。 記述不足で申し訳ありません。 実際にはもっと列も行も多いのですが、こんなイメージです。 よろしくお願いします。 VBAでも関数でもかまいません。 元データ 項目1 項目2 あ a1 あ a2 あ a3 あ a4 い b1 い b2 い b3 い b4 い b5 い b6 い b7 表示させたい結果 項目1 項目2 項目3 項目4 項目5 項目6 項目7 項目8 あ a1 a2 a3 a4 い b1 b2 b3 b4 b5 b6 b7

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

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

少なくとも現在設定されてるセルに上書きするのでしたら、一度では出来ません。 A2:B23をコピーして行列を入れ替えて横並びにしてから B2:B12だった範囲を選択してB2へ移動 B13:B23だった範囲を選択してB3へ移動すればいいのでは?

lehua
質問者

補足

早速のご回答ありがとうございます。 記述不足で申し訳ありません。 実際にはもっとたくさんデータがあるので コピーや移動での対応は難しいです。

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

並べ替えではなく関数で値を求める方法です。 元のデータシート(Sheet1とします)はそのままに、別シートを追加してA1に「あ」、A2に「い」と入力します。B1の式は以下の通りです。 B1を右方向と、下の行にもコピーしてください。 =IF(COLUMN()<COUNTIF(Sheet1!$A:$A,$A1)+2,INDEX(Sheet1!$B$1:$B$23,SUMPRODUCT(LARGE((Sheet1!$A$2:$A$23=$A1)*ROW(Sheet1!$A$2:$A$23),COUNTIF(Sheet1!$A:$A,$A1)-COLUMN()+2))),"") もし「あ」「い」の値が不特定多数で追加したシートに入力するのが大変なら、A列にオートフィルタを設定して、その後「データ」→「オートフィルタ」→「フィルタオプション」→「重複は無視する」にすると重複なしの値を得ることができます。

lehua
質問者

補足

早速のご回答ありがとうございます。 やってみます! マクロに登録もできるでしょうか?

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

関連するQ&A

  • エクセル 行 列 入れ替え

    エクセルで行列入れ替えをしたいのですが、 >貼り付け>(S)形式を選択して貼り付け… としたいのですが、この項目が選択できません。 データは、1行で列項目がB~ASまであります。 よろしくお願いいたします。

  • エクセル(2003)のコピーと貼り付けについて。

    エクセル(2003)のコピーと貼り付けについて、操作を自動化したいです。 VBA初心者です。 同じフォルダ内にAファイルとBファイルがあります。 Aファイルにはシート1からシート4まで有り、シート1とシート2にシート3と4を比較したデータを表示させています。 シート1とシート2はA1からG1まで項目として、A2からデータが表示されます。約20行程度、表示される行数は毎日変わります。 Bファイルにはシート1しかありません。A1からG1まで項目とし、A2からデータが表示されています。約100行。毎日変わります。 (Aファイルのシート1とシート2の表示されているデータを貼り付けていく為) Aファイルのシート1に表示されているデータ(A2から)を仮に20行としBファイルの101行目(入力されているデータのすぐしたの行)に貼り付け、Aファイルのシート2に表示されているデータ(A2から)を仮に20行とし、120行目に貼り付け。 毎日コピーする範囲や貼り付けをするセルが変わっていく、固定の範囲、セルではない。この作業を毎日、コピー貼り付けで操作しています。 この操作をラクにしたいです。 困っていることは、コピーする範囲が毎日変わってしまう。(行数が増減するため) 貼り付けるセルも変わってしまう、(行数が増減するため) 分かりずらい説明になっていましたら、申し訳ないです。 よろしくお願いします。

  • エクセルで縦列を横列にコピーしたい

    エクセルで縦列のデータを横列にコピーしていきたいのです。例えばA40のセルに「=G3」と入力し横にコピーしていくとB40には「H3」、C40には「I3」、D40には「J3」・・・・となります。そうではなく、B40には「G4」、C40には「G5」、D40には「G6」・・・・の値が入るようにしたいのです。この場合A40のセルにどのような式を入力してコピーしていけばいいのでしょうか。(複数列あり「形式を選択して貼り付け-行列を入れ替える」では上手くできません。)

  • エクセル2000で、数式が変わるのを防ぎたい。

    1 セルのA1:Z1には=A11 =B11 ・・・=Z11という式が入っています。 2 セルのA2:Z10には表の名前とか、項目名、数式が書いてあります。 3 一回目のデータの入力は、11行目A11:Z11でおこないます。 4 二回目以降のデータ入力は、11行目に、行の挿入を三回おこなってからやります。 またデータの入力は11行目でおこないます。 しかし、このとき、セルA1:Z1の=A11 =B11 ・・・=Z11という式は、=A14 =B14 ・・・=Z14に変わっていて、1行目に入力できません。 5 行の挿入はマクロでやっていますので、ここで=A14に変わった式を=A11に戻せないかどうか聞きたかったのです。 6 ここで作りたい表は、ここのサイトと同じように、新しいデータが上のほうに、古いデータが下にくるようにしたいのです。前にやったのは、データの入力の最後に必ず入力する項目があったので、そこで、マクロで11行をコピー、1行に貼り付けをやっていました。しかし、今回は、最後に必ず入力する項目もなく、また入力しないセルもあります。 7 他に、同じことができるアイデアがあったら、教えてください。 マクロの実行ボタンはすでに二個あるので増やしたくありません。 よろしくお願いします。

  • エクセル(excel)の計算式(関数)について

    エクセル(excel)の計算式(関数)でよいアイディアがありましたら教えてください。 1行目は項目行です。 セルA1から右に15列=セルO1まで、 a | b | c | d | e | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 と入っています。 2行目からデータとして、 セルA2から右に5列=セルE2まで、 4 | 2 | 2 | 1 | 1 と入力したとします。(データ例(1)) あるいは、 セルA3から右にセルE3まで、 6 | 3 | 0 | 0 | 0 と入力したとします。(データ例(2)) 1つのデータの5個の数字のルールは2つで、 「合計で10以下である。」 「左から順に小さくなるか、同じ数字となる。」 です。 (目的は、) このとき、F列からO列にかけて、 データ例(1)のケースでは、 a | a | a | a | b | b | c | c | d | e データ例(2)のケースでは、 a | a | a | a | a | a | b | b | b | と表示されるように、 つまり、項目行の下にある数だけ、その列の1行目の記号を 1(F列)から右に向かって順に埋めていくような、 F列からO列までの2行目以下に入れる適当な計算式(関数)は ないでしょうか。 拙い説明で申し訳ありません。どなたかよい考えをお持ちの方がいらっしゃいましたらと存じます。 どうぞよろしくお願い致します。

  • エクセルデータ。列を縦にかえる際にエラーが

    列をコピーしまして 次に「形式を選択して貼り付け」を行ないます。 「行列を入れ替える」にチェックします。 これで「OK」すると、できるはずなのですが エラーがでてしまいうまくいきません。 「コピー領域と貼り付け領域の形が違うため 情報を貼り付けできません。・・・」 というメッセージができます。 貼り付けは、1つのセルを選んではりつけてみたり 行自体すべて選んではりつけたり と考えられる、貼り付け方法にて 貼り付けているのですが どうもうまく貼り付けできません。 貼り付けるデータは2500行となております。 エクセル2000を使っております。 よろしくお願いします。

  • エクセルの使い方

    エクセルのコピーと貼り付けについての質問です。 エクセルでワークシートに表などをセル上に作成し これを別シートに図形複写ができると聞きました。 コピーして「形式を選択して貼り付け」操作をすると思うのですが うまくいきません。 時々エクセルを2個立ち上げたとき「アイコンで表示」などがついた 「形式を選択して貼り付け」メニューが出てきます。 いつでもセルのデータを図形として貼り付ける方法どなたか 教えてください。

  • EXCELのVLOOKUPを有用に使いたいのですが

    すみません。どなたか教えてください。 たとえばA1のセルに以下の値があったとします。 <abc>1<abc> このうちの1の部分をA2のセルに表示したいときは=MID(A2,6,1)で表示できました。別のシート(仮にsheet2)に例えばA行に1から昇順に番号が振られていてB行にデータが入っていたとします。VLOOKUPを使ってsheet2のB行を表示したいときは=VLOOKUP(A2,Sheet2!A:B,2,FALSE)でできると思ったのですがエラー表示になってしまいました。A2のセルを更にコピーして例えばA3に形式を選択して貼り付けで値を選択して1を表示してから=VLOOKUP(A3,Sheet2!A:B,2,FALSE)をするとB行の値が表示されるのでA2は1とみなされてないということになるかと思うのですが、A2内で1とみなすようにできる関数はないでしょうか?

  • エクセルで入力規制をかけたい

    エクセルで入力規制をかけようと思うのですが、以下のような問題が解決できずにいます。良い方法がなかなか思いつきません。心当たりがありましたら、ご教授いただけませんでしょうか。 セルに入力規制をかけて「入力値の種類」を「整数」にしてます。(以下、このセルをAとする)しかし、入力規制されていないセルに10.5と入力されているが、10.5がセルの書式設定で11と表示されている場合、これをコピーして、「形式を選択して貼り付け」-「値」を選択するとAに貼り付けることができてしまいます。見た目は11と表示されていますが、数式バーには10.5と表示されています。これを整数だけに限定したいのですが・・・。 数式バーに表示される値も整数に限定させる方法はないものでしょうか。 「形式を選択して貼り付け」-「値」という方法以外の貼り付けを禁止する必要もあるような気がしています。

  • エクセル/データの入力規則/フィルターが効かない

    お世話になります。 社員の人事データに係る20列×200行のエクセルシートがあります。 ある列に「データの入力規則」にて「入力値の種類」をリストにし、「元の値」の箱の中に3個の選択肢(例えばA,B,C)をカンマで区切って入力し、その列の入力の際にその3個の選択肢をプルダウンで選択できるようにしてから、200行(200個のセル)にAまたはBまたはCの入力をしました。 その後、1列目の項目の行にフィルターをかけ、A(またはBまたはC)が入力されたデータのみ表示させたいのですが、上から150行目まではちゃんとフィルターが掛かるのですが(即ち、A(またはBまたはC)が入力されたデータのみが表示される)、151行目以降はフィルターがかからず、A、B、C全てのデータが表示されてしまいます。 また、この時、エクセル左端の行番号の数字の色が、150行目までは青色ですが、151行目以降は黒色となっており、151行目前後で何かが違っているようです。 但し、自分自身では何かを変えたつもりは全くなく、何故151行目以降でフィルターが効かないのかが全く分かりません。 また、上記と全く同じこと(「データの入力規則」設定後に入力+フィルター)を別のエクセルファイルで行いましたが、そこでは200行全てがちゃんとフィルターが掛かっています。 何故151行目以降でフィルターが効かないのでしょうか? また、解決策は何かあるでしょうか?

このQ&Aのポイント
  • はがきの両面印刷の方法について相談です。
  • 「DCP-J582N」を使用してはがきの両面印刷を試みましたが、片面ずつしか印刷されませんでした。
  • MacOSで無線LAN接続しており、関連ソフトとしてイラストレーターやプレビューを使用しています。また、電話回線はIP電話を使用しています。
回答を見る

専門家に質問してみよう