• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2013で表の組み替え)

エクセル2013で表の組み替えの方法

このQ&Aのポイント
  • エクセル2013を使用した表の組み替え方法についてご紹介します。
  • 組み替えたい表には担当者名と日付が入力されており、2つの表を簡単に組み替えたい場合、関数やVBA、アクセスなどを使用する方法があります。
  • 手作業でコピーするのは大変なので、エクセルの機能を活用して効率的に表を組み替えることをおすすめします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>このような組み替えは、関数でやるのでしょうか、それともVBAでしょうか? 関数でできますがかなり面倒な論理を考えないと上手くいきません。 上の表をSheet1として、下の表をSheet2とした時に次のような数式で処理できます。 Sheet2!B2=IFERROR(INDEX(Sheet1!$A$2:$A$7,SUMPRODUCT(SMALL((Sheet1!B$2:B$7<>INDEX($A1:$A2,SUMPRODUCT(($A1:$A2<>"")*ROW(B$1:B$2))))*1000+ROW(B$1:B$6),MOD(ROW(),2)+1),1)),"") オートフィルで右と下へコピーします。 貼付画像は提示されたデータのみを対象にしています。 元データの大きさに合わせて表を作り直す必要があります。 >1つの担当箇所に2人以上がはいることもあり得ます(見習、応援など)。 状況に応じてSheet2の配列を変更し、数式も変更することが必要かと思います。

uenotofulover
質問者

お礼

ありがとうございました。たしかに動作確認し、おもわず顔がほころんでしまいました。シート2のA列の文字列でいろいろ変更できるのですね。質問して良かったです。使わせていただきます。 なやましい選択でしたが、最初に答えをいただいたbunjiiさまをベストアンサーとさせていただきます。

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

その他の回答 (2)

回答No.3

今回の課題はちょっと、簡単に、とはいかないので、VBA が相場かもしれません。ベストアンサーは辞退します。 ただ今後のことを考えるなら、できれば、オートフィルタやピボットテーブルで扱いやすい構造の元データを作っておくことが望まれます。添付図のような表です。 そのような元データを作っておくと、一発では質問文のような表を作ることはできないかもしれませんが、オートフィルタやピボットテーブルと、比較的簡単な数式の組み合わせにより、作ることは可能です。 以下は、添付図のデータからピボットテーブルで抽出した例です。 合計 / ID 日付 場所  2014/1/1  2014/1/2  2014/1/3  2014/1/4  2014/1/5  総計 西館  17     27     24      5     22      95 東館  27     24      9     27      2      89 南館   2      9     17     31     17      76 北館   5     17      5      2     36      65 本館  31      5     27     17      5      85 総計  82     82     82     82     82     410

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

こんばんは! VBAでの一例です。 Sheet1のデータをSheet2に表示するようにしてみました。 尚、Sheet3を作業用のSheetとして使用していますので、 Sheet3は使っていない状態にしておいてください。 画面通り 東~本館の5種類としています。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, k As Long, lastRow As Long Dim wS2 As Worksheet, wS3 As Worksheet, myArry Set wS2 = Worksheets("Sheet2") Set wS3 = Worksheets("Sheet3") myArry = Array("東館", "西館", "南館", "北館", "本館") Application.ScreenUpdating = False wS2.Cells.Clear With Worksheets("Sheet1") .Rows(1).Copy wS2.Range("A1") For k = 0 To UBound(myArry) wS3.Range("A2") = myArry(k) For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row For j = 2 To .Cells(1, Columns.Count).End(xlToLeft).Column If .Cells(i, j) = myArry(k) Then wS3.Cells(Rows.Count, j).End(xlUp).Offset(1) = .Cells(i, "A") End If Next j Next i lastRow = wS2.UsedRange.Rows.Count wS3.Range("A2").CurrentRegion.Cut wS2.Cells(lastRow + 1, "A") Next k wS2.Columns.AutoFit wS2.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous End With Application.ScreenUpdating = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

uenotofulover
質問者

お礼

ありがとうございました。たしかに動作確認し、おもわず顔がほころんでしまいました。質問して良かったです。配列の中身など、これからいろいろ試みてみます。いろいろ重宝しそうです。使わせていただきます。

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

関連するQ&A

  • 日付の同じものを並べる。(エクセル2000)

    エクセル2000で表1は2行目を先頭行として、下の数字が入力されています。     A         B 2  2005/7/15     4 3  2005/7/8      5 4  2005/7/1      3 5  2005/6/24     5 6  2005/6/17     8 7  2005/6/10     8 また10行目を先頭行として表2は下の数字が入力されています。 10 2005/7/8 10 11 2005/7/1 12 12 2005/6/24 13 13 2005/6/17 21 14 2005/6/10 22 表1と表2で日付の同じものをまとめたいと思います。 ただし、表2における日付は固定していないので、必ずしもA3=A10とはなりません。 最終的には下の表を作りたいのですが、ご存知の方がいらっしゃいましたらよろしくお願いします。 2 2005/7/15 4      3 2005/7/8 5 10 4 2005/7/1 3 12 5 2005/6/24 5 13 6 2005/6/17 8 21 7 2005/6/10 8 22

  • エクセルで予定表を管理。

    たとえば、下のような(1)の表を元に、別のシートの(2)のカレンダーの日付と、 1)の日付と担当者が、一致したセルへ、”開始”という文字をを自動で入れる事はできるのでしょうか? また表示後にも、”開始”が目立つようにセルに色が入ると見やすいのですが・・・。 こういった場合は、どうしたらいいのでしょうか?良い知恵をお願い致します。 よろしくお願いいたします。m(_ _)m (1)      A 列    B 列     E列  1    日付   担当者     開始 2   2007/6/7  あ 3   2007/6/1  い 4   2007/6/10  う (2)カレンダー    A列  B  C  D... G  H  I  J  K 1行 担当者 6/1 6/2 6/3,,,6/6 6/7 6/8 6/9 6/10........ 2行  あ             開始 3行  い  開始 4行  う                      開始

  • EXCELで日報作成

    今日は何の仕事をしたかという表をEXCEL2000で作っています。 シートが2枚がありまして、sheet1の、A列に作業名(20個ほど)、 1行目に日付(1日~31日)があります。 sheet2のA列に日付(例:8月16日)、B列に作業名(例:あ)、 C列に時間(例:3:00)と入れたら、sheet1の該当箇所に時間が 自動的に入るようにしたいのですが、どうやっていいかわからず 途方にくれています。 質問の仕方が悪いかもしれませんが、どうかご協力お願いします!

  • 2つのエクセル表について。

    エクセル表でクラス名、所属クラブ、氏名、住所等が記載された表が2つ(例:エクセル名 秋・冬)あるとします。 秋のエクセル表のAさん、Bさん・・・の所属クラブを変更したら、冬のエクセル表のAさん、Bさん・・・の所属クラブも自動で変更になる関数を教えて下さい。宜しくお願い致します。

  • EXCELの表作成について

    EXCELについて質問です。 表Aと表Bから表Cのような結果を出すためには、 どうすれば良いでしょうか? 下記の例ではたいしたデータではありませんが、 膨大な数のデータがあるとして、関数などEXCELの機能を活用して簡単に 結果を出したいと思っています。 【表A】 A    B     C    D 1     A店 B店 C店 2 パソコン 3 掃除機 4 冷蔵庫 5 テレビ 【表B】 A店   B店   C店 パソコン パソコン パソコン 掃除機  冷蔵庫  掃除機 冷蔵庫  テレビ  テレビ 【表C】 A    B    C    D 1     A店 B店 C店 2 パソコン ○ ○  ○ 3 掃除機  ○    ○ 4 冷蔵庫  ○ ○ 5 テレビ     ○  ○ ※表A内で、表Bに該当する箇所に"○"が記入されます。 ※1~5はEXCELの行 ※A~DはEXCELの列 当方、EXCELは使い慣れていいますので、 多少難しい方法でも構いません。 (ややこしい関数の組み合わせも理論さえ理解すれば大丈夫です) どなたか分かる方がいましたら、 よろしくお願い致します。

  • エクセルで二つの表を一つにする方法

    エクセルの二つの表を一つにまとめる方法がわかりません。 表1・表2とも共通なところは、列Aから順に会社名(表1は(株)などの表示あり、表2には無い)・住所(表1には都道府県名から記載あり、表2には無い。またその逆パターンもあり)・電話番号・FAX番号があります。電話番号やFAX番号も何本か回線があるものもあり、必ずしも一致するとは限りません。 E列以降は表1には代表者名、表2には、交渉日、担当者名、交渉内容と別の物が入っています。 1行に一つの会社の情報が入っていますが、行についてはA列とB列の並び順はバラバラで、それぞれ重複している会社もあれば、他方に無い会社データもあります。 この二つの表を一つにまとめるため、最良なエクセルの使い方を教えてください!よろしくお願いします。

  • excelで1つの表から2つの表の作り方

    excelの表について教えてください。 sheet1に1つの表が下のようにあります。   A  B  C  D  E  F  G 1 1 あ 亀 白 32 目 木 2 2 い 鶴 赤 25 耳 海 3 2 う 猿 青 44 鼻 川 4 1 え 牛 緑 76 口 湖 5 1 お 犬 黄 14 手 沼 6 2 か 猫 紫 83 足 丘 ここから2つの表を別のsheetに作りたいのです。 sheet2には、   A  B  C  D  E  F  G 1 1 あ 亀 白 32 目 木 2 1 え 牛 緑 76 口 湖 3 1 お 犬 黄 14 手 沼 と、A列の「1」の行だけを、また sheet3には、   A  B  C  D  E  F  G 1 2 い 鶴 赤 25 耳 海 2 2 う 猿 青 44 鼻 川 3 2 か 猫 紫 83 足 丘 と、A列の「2」の行だけを、それぞれ作りたいのです。 しかも、sheet1のA列に、1か2を入力することで、 自動的に、sheet2に1を記入した行を、sheet3に2を記入した行を割り振るようにしたいのです。  よろしくお願いいたします。

  • エクセルの表をさらにマトリクス表に展開したい。

    初めて質問させて頂きます。 仕事上でエクセル2003を使用しています。 以下の作業を簡単にできるように、数式またはマクロを組むことを考えています。 表1を表2のように展開する。(例) 表1    A  B  C 1  A1 B1 あいうえお 2  A2 B2 かきくけこ 3  A3 B1 さしすせそ 4  A4 B2 たちつてと 5  A1 B1 なにぬねの 表2    A    B       C   1       B1      B2 2  A1 あいうえお      なにぬねの 3  A2         かきくけこ  4  A3 さしすせそ  5  A4         たちつてと ※行の数は実際はもっと多いです。  また表2のB2に記入してある内容は  複数行になっても構いません。 まずはマクロ(VBA)を使わずにできるかやってみましたが、 VLOOKUPなどでは、なかなかうまくいきません。 よい方法はないでしょうか? VBA使用でもかまいません。 ヒントだけでもぜひよろしくお願いします。

  • エクセルで365×24の表を8760×1に並び替えたいです

     エクセルで、下のような365×24の表で    A  B  C  ・・X 1  ● ● ●   ●           2  ● ● ●   ● 3  ● ● ●   ●        ・                365  ● ● ●   ●            で、これを8,760×1の表に簡単に変換したいのですがやり方がわかりません。少なかったらコピーして行と列を入れ替えるで、やってもいいのですが今回はこれが、かなりの量があり手作業だと時間がかかりすぎ、実用的ではありません。ですので、この作業を簡単に出来る方法を探しております。どうぞ宜しくお願いします。  なお、こちらはオフィス2000、2002を使用しております。

  • EXCELで勤務表作成

    勤務表の作成をエクセル2003で作成しています。     1 2 3 4 5 ・・ 鈴木  A A B B 休 佐藤  B B 休 休 A 太田  休 休 A A B 吉田  A B 休 B A 上記のように個人別にその日に何の担当業務をするかで作成されたものを   11月1日        11月2日    ・・・  A 鈴木 吉田      A 鈴木  B 佐藤         B 佐藤 吉田  休 太田         休 太田 と日付ごとに業務別に誰が担当するのか別の表で作成する方法があったら教えて下さい。「最初からその表で作成すれば?」とお思いになるかもしれませんが、大人数の休日の管理が難しいので最初の表の作成方法は変えたくありません。ちなみに表の通り一つの業務に複数名担当することもありえますので、できればそれをふまえた上で回答願います。

このQ&Aのポイント
  • 画面が動かない対処法として、再起動やシャットダウンを試してみても改善されない場合は、特定のボタンを押すことで解決できる可能性があります。
  • 富士通FMVの画面が動かない場合、再起動やシャットダウンしてみても効果がない場合は、特定のボタンを押すことで問題が解消することがあります。
  • 富士通FMVの画面が固まってしまった場合、再起動やシャットダウンを行っても画面が動かない場合は、特定のボタンを押してみると改善するかもしれません。
回答を見る

専門家に質問してみよう