Excelで横並びグループを縦並びに変換する方法を教えてください

このQ&Aのポイント
  • エクセルの表の縦横変換について質問です。コピー→形式を選択&縦横変換では出来ないので関数かVBAになると思いますがこれらが苦手なモノで質問させていただきました。
  • 現在の並びはコードA、コードB、コードC、コードD、コードEの順で、それぞれのコードに対応するサイズ、数量、重量、区分が横に並んでいます。この並びをコードA、サイズA、数量A、重量A、区分A、コードB、サイズB、数量B、重量B、区分B、…というように縦に変換したいと思っています。
  • 既出の質問に似ているので、それをベースに試してみましたが解決できませんでした。どなたか良い関数や方法をご存知の方がいらっしゃいましたら、教えていただけると助かります。
回答を見る
  • ベストアンサー

excelで横並びグループを縦並びに変換する方法を教えて下さい

エクセルの表の縦横変換について質問です。 「コピー」→「形式を選択&縦横変換」では出来ないので関数かVBAになると思いますがこれらが苦手なモノで質問させていただきました。 現在の並び コードA  コードB コードC  コードD コードE … サイズA  サイズB サイズC  サイズD サイズE … 数 量A  数 量B 数 量C  数 量D 数 量E … 重 量A  重 量B 重 量C  重 量D 重 量E … 区 分A  区 分B 区 分C  区 分D 区 分E … これを下のようにしたいのですが、良い関数などは無いでしょうか?? コードA サイズA 数 量A 重 量A 区 分A コードB サイズB 数 量B 重 量B 区 分B コードC サイズC 数 量C 重 量C 区 分C コードD サイズD 数 量D 重 量D 区 分D コードE サイズE 数 量E 重 量E 区 分E 既出の質問http://oshiete1.goo.ne.jp/kotaeru.php3?q=1263622 に似ているのでこの関数をベースにいろいろやってみたのですが自分では解決できず相談させていただきました。 よろしくお願いします。

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

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

数式の方法です A7セルなら =INDEX($A$1:$E$5,MOD(ROW(A5),5)+1,ROW(A5)/5) 下へオートフィル 作業列を設けたB7セルなら(添付図) =INDEX($A$1:$E$5,MOD(A7,5)+1,A7/5) 下へオートフィル

katsu009
質問者

お礼

早速の回答ありがとうございます。 おかげさまで一発で変換できました!

その他の回答 (1)

回答No.2

行列を入れ替えて貼り付けすれば、指摘されている既出の質問と同じ形になるのでは?

関連するQ&A

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

    エクセル初心者です。 入力伝票データを元に、集計シートに自動的に品名コード順の合計を作成したいのですが、うまくできません。 データシートのデータをソートせずに関数だけで出来る方法をお教えください。 ※エクセルは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で同一のデータを抽出して横並びに

    A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  ccc     4 bbb      12  ddd     6 ccc     10  aaa     22 ddd     6   eee     10 eee     5   bbb     7 fff       8 kkk 9 kkk 7 lll 4 上記のようなデータを 以下のように同じ商品コードを横並びに表示させたいのですが どういったcountifとかで試したのですが上手くいかず、どのような関数を使えば可能でしょうか? A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  aaa     22 bbb      12  bbb     7 ccc     10  ccc     4 ddd     6   ddd     6 eee     5   eee     10 fff       8 kkk 7 kkk 9 lll 4 宜しくお願い致します。

  • (VBA) 横並びを縦並びに

    kkkkkmさん、毎回アドバイスいただき感謝します。 以下のスレッドが元になります。 https://okwave.jp/qa/q10027270.html なぜだか?私の質問スレッドが消えてしまいました。 途中で投げ出したような感じで気持ちが悪いので続けます。 以下は、最後のkkkkkmさんの回答への追加質問になります。 >LastRowNum2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row >の位置がソートの前のあたりに無いと1回目(実行前のsh2にデータが無い時LastRowNum2が1のままなので)ソートしてくれませんでした。 LastRowNum2は、ソートの時のソート範囲にしか利用しないので おっしゃるようにソートの前で問題ないのですが sh2にDATAが無い状態とは マクロが実行されていない最初の状態又は SH1にDATAが無い状態でマクロを実行した時だけだと思うのですが ? 一応、次回に備えてsh2のシート全体を初期化のため sh2.Cells.ClearContents を最初に追加しました。 >D列のソートでいいかどうか、利用者で変更してくれるといいですね。 今回はD列(項目)でソートしていますが ソートのキーとしてA,B,C,Dの4つが考えられます。 それぞれ優先順位でD-A-B-C や A-B-C-D など色々組み合わせが考えられますが これの組み合わせを網羅して利用者が選択できるようにするには 簡単では無いような気がします。 勉強のため少し考えてみますが、 考え方(ロジック)や使用すべき関数などを紹介下さい。 >Resize 確かにresizeを使用したほうが分かりやすいですね。 '------------------------------------- と「ここまで」記載した時点でスレッドが消滅してしまいました。 以下が現在のコード Option Explicit Sub Macro1() Dim sh1 As Worksheet, sh2 As Worksheet Dim LastRowNum As Long, LastRowNum2 As Long Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") LastRowNum = sh1.Cells(Rows.Count, 1).End(xlUp).Row '書き出しシート(sh2)の初期化 sh2.Cells.ClearContents '見出し行 sh2.Range(sh2.Cells(1, "A"), sh2.Cells(1, "D")).Value = sh1.Range(sh1.Cells(1, "A"), sh1.Cells(1, "D")).Value '同一(ID,名前) sh2.Range(sh2.Cells(2, "A"), sh2.Cells(LastRowNum, "B")).Value = sh1.Range(sh1.Cells(2, "A"), sh1.Cells(LastRowNum, "B")).Value sh2.Range(sh2.Cells(LastRowNum + 1, "A"), sh2.Cells(2 * LastRowNum - 1, "B")).Value = sh1.Range(sh1.Cells(2, "A"), sh1.Cells(LastRowNum, "B")).Value '手術日,項目 sh2.Range(sh2.Cells(2, "C"), sh2.Cells(LastRowNum, "D")).Value = sh1.Range(sh1.Cells(2, "C"), sh1.Cells(LastRowNum, "D")).Value '手術日,項目(配置換え) sh2.Range(sh2.Cells(LastRowNum + 1, "C"), sh2.Cells(2 * LastRowNum - 1, "D")).Value = sh1.Range(sh1.Cells(2, "E"), sh1.Cells(LastRowNum, "F")).Value LastRowNum2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row 'ソート sh2.Range(sh2.Cells(2, "A"), sh2.Cells(LastRowNum2, "D")).Sort key1:=sh2.Range("D1"), order1:=xlAscending, Header:=xlYes Set sh1 = Nothing Set sh2 = Nothing End Sub

  • エクセルでの縦グループを横グループに並べ替える方法

    次のような表があります(Pフォントの影響で列幅がずれています)。 縦に3行分が一つのグループであり、1行分のスペースを空けて 再び3行分のグループが繰り返しあります。 このようなデータグループが縦に500件以上あります。 │ A │ B │ C │ D │ E │ F │ G │ H 1│a1 │ │ │ │ │ │ │ 2│a2 │ │ │ │ │ │ │ 3│a3 │ │ │ │ │ │ │ 4│ │ │ │ │ │ │ │ 5│b1 │ │ │ │ │ │ │ 6│b2 │ │ │ │ │ │ │ 7│b3 │ │ │ │ │ │ │ これを下表のように横に並べ替えたいのです。 件数が多く、ハンドで一つ一つを並べ替えるのは困難なので、 何とか簡単に実現する方法を知りたいのです。 │ A │ B │ C │ D │ E │ F │ G │ H 1│ a1 │ a2 │ a3 │ │ │ │ │ 2│ b1 │ b2 │ b3 │ │ │ │ │ 3│ │ │ │ │ │ │ │ 4│ │ │ │ │ │ │ │ 5│ │ │ │ │ │ │ │ 6│ │ │ │ │ │ │ │ 7│ │ │ │ │ │ │ │ 皆様、何とかお知恵をお貸しください。 よろしくお願いいたします。

  • エクセル関数について教えてください!!

    エクセル関数について教えてください!! エクセルファイルに以下のようなデータがあります。 A列 B列 C列 あ  A10 100  あ  A10 110 あ  B10 120 い  C10 100 い  D10 100 う  E10 100 あ  B10 120 い  C10 100 A列:販売店 B列:コード C列:売り上げ金額 (合計8000件程度) 販売店毎での売り上げ金額を求めたいのですが、B列のコードが重複しています。 販売店+重複コードは1つに纏めての金額を求める関数を教えていただけますでしょうか。 イメージ あ  A10 210 あ  B10 240 い  C10 200 い  D10 100 う  E10 100 よろしくお願いしますm(_ _)m

  • 文字の変換 (アルファベット)

    文字の変換について教えてください 10進数の1は16進数で1、10はAになります。 ではアルファベットはどうなるんでしょうか? 以下の変換であっているでしょうか? a = c1 b = c2 c = c3 d = c4 e = c5 f = c6 g = c7 h = c8 i = c9 j = d1 k = d2 l = d3 m = d4 n = d5 o = d6 p = d7 q = d8 r = d9 s = e1 t = e2 u = e3 v = e4 w = e5 x = e6 y = e7 z = e8 上記の変換が16進数かどうかもわかりませんが、教えてください。 よろしくお願いします。

  • Excel 1を選択肢に変換

    変換前 1.ご意見、ご感想などをご自由にご記入ください 面白かった よかった   2.ご興味のある分野をお聞かせください。 あああ   いいい   ううう   えええ 1            1        1 3.理由をお聞かせください。 試してみたかった    さわってみたかった    その他    その他() 1                         1       ~だから                  1 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 変換後 A1           B1          C1          D1 アンケート Question 1  アンケート Answer 1  アンケート Question 2  アンケート Answer 2 E1          F1 アンケート Question 3  アンケート Answer 3 A2                        B2 【1.ご意見、ご感想などをご自由にご記入ください】 「記述」面白かった C2                        D2 【2.ご興味のある分野をお聞かせください。】    「選択」あああ/「選択」ううう E2                        F2 【3.理由をお聞かせください。】          「選択」試してみたかった/「選択」その他/「記述」~だから A3                        B3 【1.ご意見、ご感想などをご自由にご記入ください】 「記述」よかった C3                        D3 【2.ご興味のある分野をお聞かせください。】    「選択」いいい E3                        F3 【3.理由をお聞かせください。】          「選択」さわってみたかった ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 別シートにA1B1・・と横にアンケート Question 1  アンケート Answer 1を質問の数だけ A2A3・・と下に回答者の回答を並べたいです。 複数回答だったら/で区切ります。 質問についている【】は絶対必要です。 フラグが立ってたら「選択」を前につけてフリーアンサーだったら「記述」をつけたいです。 回答が空白だったら空白に、変換前のシートのフラグは5行目から立てます。 質問の数も選択肢も回答者数も毎回変わるのでそれに対応できるようにしたいです。 マクロで可能でしょうか よろしくお願いします。

  • エクセル関数のことで困っています。

    今、簡単な表計算の表を作っていますが、先に進まず困っています。 A1~A200のセルに1~200の番号が昇順で入っています。そしてデータとして,B2,C2,D2,E2 に各々a、b、c、dが入っており,,B3,C3,D3,E3 にa1、b1、c1、d1・・・・・・・・・・・・B200,C200,D200,E200にw,x,y,zのようにB,C,D,E列に適当な数が入っています。 そこで、E列の値で昇順  SMALL(D$1:D$200,A1)  に並べ替え、同時にB,C,D,Eの値も返したいのです。つまりエクセルの並べ替え機能を関数で自動で行いたいのです。 今は、関数の、ROW,SUMPRODUCT,COUNT,INDEX,LARGE,COUNTIF,COLUMN,などを使い関数バーに5行ほどになり、処理にとても時間がかかります。 何とか、簡単で早い計算式はないでしょうか。 よろしくおねがいします。

  • エクセルの順位抽出について

    Sheet1のA列にコード、B列に商品名、C列に分類 D列に売上数、 E列に売上金額を入力した一覧表があります。 A_1:1000 B_1:牛肉 C_1:食品 D_1:20 E_1:3000 A_2:1050 B_2:お茶 C_2:飲料 D_2:18 E_2:3010 A_3:2000 B_3:鉛筆 C_3:文具 D_3:12 E_3: 900 A_4:2050 B_4:お米 C_4:食品 D_4:12 E_4:9010 A_5:3000 B_5:牛乳 C_5:飲料 D_5:25 E_5:2000 A_6:3050 B_6:定規 C_6:文具 D_6:28 E_6: 700 中略 A_300:10000 B_300:肉まん C_300:食品 D_300:38 E_300:9000 1.食品対象で売上金額の上位20のコードをSheet2のA列に表示 2.全商品対象で売上金額の上位20のコードをSheet3のA列に表示 上記の様な抽出をしたいのですがどの様な関数を使用すれば良いでしょうか? (オートフィルタを使用してのコピペという手作業をなくすためにSheet1の内容が更新されれば自動でSheet2,3の内容も更新されている のが希望です) よろしくお願いします。

  • 横並びを縦並びに並べる方法

    表題では、意味が伝わらないと思いますので、具体的に説明したいと思います。 私の働く会社で、最近流れ始めた製品の検査方法について、皆様からアドバイス頂きたく、質問させて頂きます。 製品のサイズは、約30mm×7mm×3mmの長方形の焼結体です。 現在の方法は、ガラスに横(7mm方向)にある程度の数を並べ、その上からガラスをおいて両面を検査し、側面(3mm方向)を外観検査しています。 一日の出荷量が20kチップで、検査時間は約一日掛かっています。この時間の 大半が、7mm方向面の検査後の3mm方向の並び替えに時間えお要してます。 時間短縮の為、色々試してみましたが、7mm方向から3mm方向に立てる方法が 一向に見付からず、悩んでいます。

専門家に質問してみよう