• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 2003 で縦横を入れ替えたいのですが)

Excel 2003で縦横を入れ替える方法とは?

このQ&Aのポイント
  • Excel 2003で縦横を入れ替える方法を解説します。表形式のデータをコード別に部品コードを横に並び替える方法をお伝えします。
  • Excel 2003で縦横を入れ替える方法をご紹介します。データ表の構造を変更することで、部品コードを横に並べることができます。
  • Excel 2003で縦横を入れ替える方法についてご説明します。表形式のデータをヨコに並べ替えることで、部品コードを一度に表示することができます。

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

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

こんばんは! 一例です。 ↓の画像で説明させていただきます。 Sheet1に作業用の列を設けています。 作業列D2セルに =IF(COUNTIF($A$2:A2,A2)=1,ROW(),"") という数式を入れ、フィルハンドルの(+)マークでダブルクリック、 又はオートフィルで下へコピーします。 そしてSheet2のA2セルに =IF(COUNT(Sheet1!$D$2:$D$1000)<ROW(A1),"",INDEX(Sheet1!A$2:A$1000,SMALL(Sheet1!$D$2:$D$1000,ROW(A1)))) という数式を入れ、隣のB2セルまでオートフィルでコピーします。 C2セルには =IF($A2="","",IF(COUNTIF(Sheet1!$A$2:$A$1000,$A2)<COLUMN(A1),"",INDEX(Sheet1!$C$2:$C$1000,SMALL(IF(Sheet1!$A$2:$A$1000=$A2,ROW(Sheet1!$A$1:$A$999)),COLUMN(A1))))) このC2セルは配列数式になってしまいますので、 この画面からC2セルに貼り付けただけではエラーになると思います。 貼り付け後、C2セルをダブルクリック、又はF2キーを押す、又は数式バー内で一度クリックします。 編集可能になりますので Shift+Ctrl+Enterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 このC2セルを列(右)方向へオートフィルでずぃ~~~!っとコピーします。 最後にA2~今列方向にコピーした最後の列まで範囲指定し、 最後の列のフィルハンドルで下へコピーすると 画像のような感じになります。 尚、数式はSheet1の1000行目まで対応できるようにしていますが データ量によって範囲指定の領域はアレンジしてみてください。 以上、長々と書きましたが 参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m

suekensaku
質問者

お礼

丁寧に回答ありがとうございました。 助かりました。

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

その他の回答 (5)

noname#204879
noname#204879
回答No.5

Sheet1    A    B     C 1  コード 品名   品コード 2   101 テレビ  80000001 3   101 テレビ  90000001 4   101 テレビ  70000001 5   101 テレビ  50000001 6   201 パソコン 30000001 7   201 パソコン 40000001 8   201 パソコン 42000001 9   201 パソコン 50000001 10   301 モニタ  10000001 11   301 モニタ  20000001 12 Sheet2 (添付図) C2: =IF(COLUMN(Sheet1!A1)>COUNTIF(Sheet1!$A$1:$A$3000,$A2),"",OFFSET(Sheet1!$A$1,MATCH($A2,Sheet1!$A$1:$A$3000,0)-1+COLUMN(A1)-1,2))

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

Sheet1    A    B     C 1  コード 品名   品コード 2   101 テレビ  80000001 3   101 テレビ  90000001 4   101 テレビ  70000001 5   101 テレビ  50000001 6   201 パソコン 30000001 7   201 パソコン 40000001 8   201 パソコン 42000001 9   201 パソコン 50000001 10   301 モニタ  10000001 11   301 モニタ  20000001 12 Sheet2 (添付図) C2: =IF(COLUMN(Sheet1!A1)>COUNTIF(Sheet1!$A$1:$A$3000,$A2),"",OFFSET(Sheet1!$A$1,MATCH($A2,Sheet1!$A$1:$A$3000,0)-1+COLUMN(A1)-1,2))

suekensaku
質問者

お礼

回答ありがとうございました。 助かりました。

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

関数で処理するなら以下のような配列数式を使うことになります。 E2セルに以下の式を入力し、右方向(F2セル)に1つオートフィルコピー =INDEX(A:A,SMALL(INDEX((MATCH($A$2:$A$1000&"",$A$2:$A$1000&"",)<>ROW($A$2:$A$1000)-1)*1000+ROW($A$2:$A$1000),),ROW(A1)))&"" G2セルに以下の式を入力し、右方向に最大部品数分(20)だけオートフィルコピー。 =INDEX($C:$C,SMALL(INDEX(($F2<>$B$2:$B$1000)*1000+ROW($B$2:$B$1000),),COLUMN(A1)))&"" 最後に上記の数式の行範囲を選択して下方向にオートフィルコピーすれば完成ですが、表示データ数が多くなると動きが重くなりますので、たとえば100行分位をオートフィルしたら、最後の数式1行を残してその上のデータ範囲を選択して、右クリック「コピー」、そのままもう一度右クリック「形式を選択して貼り付け」で「値」貼り付けして、順次計算結果を値に変更すると良いと思います。 ちなみに上記の数式は計算結果を文字列で表示していますので、コード番号が例示のように文字列ではなく数字の場合に「数字」として入力した形に変更したいなら、空白セルを選択して右クリック「コピー」、対象範囲を選択して右クリック「形式を選択して貼り付け」で「加算」にチェックしてください。

suekensaku
質問者

お礼

回答ありがとうございました。 参考になりました

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

シート1に元のデータがあるとしてD列およびE列は作業列とします。 D2セルには次の式を入力します。 =IF(COUNTIF(A$2:A2,A2)=1,MAX(D$1:D1)+1,"") E2セルには次の式を入力します。 =IF(A2="","",A2&"a"&COUNTIF(A$2:A2,A2)) D2およびE2セルを選択いしてそれらの式を下方にオートフィルドラッグします。 お求めの表をシート2に作ることにして1行目にはお示しのような項目を並べます。 A2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$D:$D,ROW(A1))=0,"",IF(COLUMN(A1)<=2,INDEX(Sheet1!$A:$B,MATCH(ROW(A1),Sheet1!$D:$D,0),COLUMN(A1)),IF(COUNTIF(Sheet1!$E:$E,$A2&"a"&COLUMN(A1)-2)=0,"",INDEX(Sheet1!$C:$C,MATCH($A2&"a"&COLUMN(A1)-2,Sheet1!$E:$E,0)))))

suekensaku
質問者

お礼

早々にご対応いただきありがとうございました。 大変助かりました。

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

(1)入れ替えたい範囲をコピーする。 (2)これを別のセルとかシートに行と列を入れ替えて貼り付ける。  その方法は、入れ替え後の一番左上になるセルを指定して右クリックすると、「形式を選択して貼り付け」と言うのが出てくる。   そこをクリックして、現れたボックスの下の方に「行列を入れ替える」というのがあるから、そこのチェックボックスをチェックして、「OK」をクリック。 以上

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

関連するQ&A

  • エクセル縦横検索

    エクセルの縦横検索で関数がわからず何日も悩んでいます。。 <Sheet1> は商品コード・ランクごとの単価表です。   A列    B列     C列   D列    E列  F列 1  商品コード 商品名  Sランク Aランク BランクCランク  2  00010001 AA-1111 10.00 11.00  13.00 14.00 3  00100022 AB-222  11.00 12.00  15.00 16.00 4  00200033 BDB-123 20.00 21.00  22.00 23.00 5  00300033 CA-111  9.00 10.00   11.00 12.00 …  ・・・ 10  01000033 OP-100   30.00 31.00  32.00 33.00 11  02000123 TD-358  10.00 11.00  12.00 13.00   以下5000行ほど続きます。 <Sheet2>は得意先ごとのランク表です。 商品群は商品コードの頭2桁目と3桁目(00、01等)でランクが決まっている為、1行目に2桁の数字を入れています。   A列        B列             C列   D列   E列 … 1                            00   01    02    10  20  2  得意先コード 得意先名/商品群  AA  AB   BDB   OP TD  3  11111    あああ            S    A     C    B  C 4  11222    いいい            A   C     B    S  A 5  12333    ううう              C    S      S    A   B 6  12444    えええ            A   A      B    C   C 7  12555    おおお            B   B     C    S  B …  ・・・   横に50列ほど続きます。 <Sheet3>は入力画面です。    A列       B列      C列   D列 1   得意先コード 商品コード   ランク  単価 2   11222     01000033    得意先コードと商品コードを打ち込むとC2にランク(例だとS)が出るようにしたいのですが、 VLOOKUP($A$2,Sheet2!,A1:Z100,MATCH(C2,Sheet1!A1:A5000,C1:F1)) とすると、アルファベットは出るのですが、ランク表どおりに出ません。01と10が同じ数字として認識されてしまいますし、2桁目と3桁目を認識する関数がわからないので、ここで止まっています。 ランクが出たら、隣の単価を求める関数もついでに教えていただけたらさいわいです。 よろしくお願い致します!

  • Excelでの集計その2

    以前、似た質問をしたものです。下記のケース を、Excel(Excel2000)で作れるでしょうか 次のようなデータが10000件ほどあります。 ------------- (A)--------------------------- 行 商品コード 品名 品番  数量   金額 1 10010005   A商品 A-005  5   1000 2 10010006   B商品 B-006  5   1050 3 10010006  B商品 B-006  6   1100 4 10010007   C商品 C-007  10   100 5 10010008   D商品 D-008   6   60 6 10010009   E商品 E-009   3   300 7 10010010   F商品 F-010  7   700 8 10010010   F商品 F-010   3   300 ------------- (B)--------------------------- 行 商品コード 品名 品番  数量   金額 1 10010005   A商品 A-005  5   1000 2 10010006   B商品 B-006  11   2150 3 10010007   C商品 C-007  10   100 4 10010008   D商品 D-008   6   60 5 10010009   E商品 E-009   3   300 6 10010010   F商品 F-010  10   1000 ------------------------------------------------- (A)のような商品コードが一部同じデータを商品コードをキーにして、数量、金額を集計して(B)のようにしたいのですが、Excelでどのようにしたら出来るでしょうか? よろしくお願いします。

  • エクセル関数でグループ単位に集計を行う

    エクセル初心者です。 入力伝票データを元に、集計シートに自動的に品名コード順の合計を作成したいのですが、うまくできません。 データシートのデータをソートせずに関数だけで出来る方法をお教えください。 ※エクセルはExcel2003を使用しています。 《データシート》例 [見出し] A1:年月日,B1:伝票番号,C1:品名コード,D1:数量,E1:単価,F1:金額 [データ] A2:2008/10/1,B2:Z-001,C2:S0001,D2:3,E2:1,000,F2:3,000 A3:2008/10/1,B3:Z-002,C3:S0002,D2:1,E3:2,000,F3:2,000 A4:2008/10/1,B4:Z-003,C4:S0003,D4:2,E4:3,000,F4:6,000 A5:2008/10/2,B5:Z-004,C5:S0002,D5:1,E5:2,000,F5:2,000 A6:2008/10/2,B6:Z-005,C6:S0001,D6:3,E6:1,000,F6:3,000 A7:2008/10/3,B7:Z-006,C7:S0003,D7:2,E7:3,000,F7:6,000 《集計シート》例 [見出し] A1:品名コード,B1:伝票数,C1:数量計,D1:合計金額 [集計値] A2:S0001,B2:2,C2:6,D2: 6,000 A3:S0002,B3:2,C3:2,D3: 4,000 A4:S0003,B4:2,C4:4,D4:12,000 ※品名コードは固定せず、データシートに入力されたものだけを集計したい

  • EXCELの表で縦横の入れ替え方法

    EXCELの表で 縦軸と横軸を入れ替える方法ってありますか? つまり A B C D E F G H I J K L っていう表を A E I B F J C G K D H L にしたいのです。

  • エクセル 別シートから一覧を抽出したい

    部品一覧表を作成しているのですが、2シートあり 1入力シート・2部品コードシートとあります。 部品コードシートにはB列に部品番号・C列部品名・D列部品番号・E列部品名と2行ずつ使い番号・品名がB~Wまで47行分入力されています。 B1:C47、D1:E47…と2列47行にはそれぞれ【A】、【B】、…とセルの名前の定義をつけました。現在【H】までありますが、今後増える可能性があります。 入力シートに、セルの名前を指定したときに部品コードのシートから 一覧を抽出したいのですが、どの関数を使えばよいのかわかりません。 入力シート                 |部品コードシート G   H                  | A Bコード C部品名  Dコード E部品名 4式入力用にあけています。     |1 1800  ユニットA   1501 電源A 5コード 部品名             |2 1801  ユニットB   1502 電源B 6                       |3 G4に関数を入れてG6~G52まで部品コードのシートA1~A47を一気に表示 させたいのです。部品コードシートの行数が変わることはありません。 マクロを使わないと、関数では難しいでしょうか?

  • Excel で資料を作成したいのですが・・・

    A   B   C     D   E F G H I 品名 日付 数量 あ 2008/12/17 20 2008/12/18 20 2009/1/1 90 2009/2/1 70 い 2008/11/25 720 2008/11/27 240 2008/12/24 74 2008/12/3 480 う 2008/11/25 87 2008/11/26 99 2008/12/19 3 2008/12/9 115 え 2008/11/27 98 2008/12/8 150 2009/1/1 111 2009/2/1 176 お 2008/12/5 205 2009/1/1 192 2009/2/1 188 品物の日付と数量が書かれたエクセルデータがありますが、日付がばらばらなので月度ごとに集計した表を作成したいのですが簡単にできる方法を教えて下さい。     11月度  12月度 1月度 2月度 あ     い となるような表を作成したいのですが・・・教えてください。よろしくお願い致します。

  • エクセル表を別の形にしたい。

    windows-xp、エクセル2003を使っています。 A    B 品名  工程名 リング a リング   b リング   e リング  h リング   u バネ   a バネ   u バネ   k バネ   c バネ   t バネ   d バネ   s バネ   p バネ   o ビス   s ビス   p ビス   o ↑ エクセルでこのような表があります。 それを下記(↓)のように、一発変換できませんか? 1つの品名に係わる工程名をヨコに並べたいのです。(←ヨコ並びにするのがポイント)  A    B   C   D   E   F   G    H    I    J    K 品名  *空欄*    工程名 リング  **    a     b    e   h    u バネ   **    a    u    k    c     t     d     s     p    o ビス    **    s    p    k 例えば、「リング」だったら、工程名(a~u)がヨコに5つ並ぶ。というかんじです。 また、品名と工程名の間は一列空けたいです。 VBAや関数なんでもよいので、なんとかできないでしょうか? おわかりになるかたがいらっしゃいましたら、何卒宜しくお願い致しますm(_ _)m

  • エクセル 順位表

    エクセル 順位表 いつもお世話になります。 売上実績表の中に、順位表を追加したいのですが、実績表から抽出すると、同一の実績の営業所は、すべて同じ営業所になってしまい困っています。 A    B    C   D    E   F 営コード 実績      順位  営コード  実績 2     200   1   5  500 3   400   2   3  400 4   300   3   4  300 5   500   4   4  300 6   300   5   4  300 7    300 順位3、4、5位は、それぞれ4,6,7の営業所コードを表示したいのですが、どうしたらいいでしょうか。 F列には、F2=LARGE(B:B,ROW(A1)) E列には、E2=INDEX(A:A,MATCH(F2,B:B,0)) 営業所数は100程あり、ピボットテーブルを使用せずに作成したいです。 色々条件がついてますが、よろしくお願い致します。

  • EXCELデータの縦横変換について教えて下さい

    数値はランダムですか奇数行には+の値、偶数行には-の値が 入っているシートから(+/-の値は同じではありません)別 のシートに次の様に移したいのですが方法はありませんか? 移動元シート: A B C D E F 1 + 19 18 17 16 15 2 - 29 28 27 26 25 3 + 39 38 37 36 35 4 - 49 48 47 46 45 5 + 59 58 57 56 55 6 - 69 68 67 66 65 7 + 79 78 77 76 75 8 - 89 88 87 86 85 移動先シート: A B C D E 1 + 19 39 59 79 2 - 29 49 69 89 3 + 18 38 58 78 4 - 28 48 68 88 5 + 17 37 57 77 6 - 27 47 67 87 移動元の B1,B2 C1,C2 D1,D2 の組となっている値を 移動先の B1,B2 B3,B4 B5,B6 に移したいです。 データ数としては横は8個、縦は200行程度です。

  • EXCEL

    A-B-C-D-E-F-G 1-A-W-A-1-B- 2-B-A-N-2-C- 3-C-K-A-3-B- 4-D-A-I-4-E- 5-E-R-X-5-A- 例えば,エクセルで表のようになっている場合に, 列AにF1の値(表の場合は文字B)で検索をかけ,検索に該当した行(表の場合では行2)の列Dの値をG1に表示する方法はあるでしょうか?? 簡単に言うと,列Gに自動的にFに対応するDの数値を入力したいのです.自動的に列Gを下の表のようにすることは可能でしょうか? A-B-C-D-E-F-G 1-A-W-A-1-B-2 2-B-A-N-2-C-3 3-C-K-A-3-B-2 4-D-A-I-4-E-5 5-E-R-X-5-A-4 投稿すると文字がずれてしまって表が見難くてすいません. どなたか,ご教授よろしくお願いします.

専門家に質問してみよう