• ベストアンサー

Excelで複数行を1グループ単位に横詰で配列

店舗 顧客 商品 A店 あ   ア A店 あ   イ B店 い   ア B店 い   エ B店 い   オ これを、 店舗 顧客 商品 A店 あ  ア イ B店 い  ア エ オ 顧客単位に商品を横に詰めて配列したいのです。 どうぞ、よろしくご指導お願いします。

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

  • ベストアンサー
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.6

[No.3補足]へのコメント、 》 関数を入力したのですが、excel2013だからなのか? 「excel2013だから」ではありません、入力に必須な操作が抜けていたから。 添付図に示した[数式バー]に表示された式の姿を凝視してください。 式の両端に括弧{}があるでしょ? ご存じだと思って説明を省略してました。私も、… 》 【お断わり】上式は必ず配列(CSE)数式として入力のこと を付記しておくべきでした。m(_._)m 「関数を入力した」ら、それを確定するために普通は Enterするべきところを Ctrl+Shift+Enterを「エイヤッ!」と憎々し気に叩き付けてください。そうしたら自動的に当該式が当該括弧で囲われます。決してキーボードから当該括弧を入力してはなりませぬぞ!

utdx019
質問者

お礼

Ctrl+Shift+Enterの件、ありがとうございました。 {}を手入力してりました。 こちらとしては後出しをしたつもりではないですが、お気にさわったようで申し訳ございません、どうにか自力で対応します。

その他の回答 (6)

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.7

[No.3補足]へのコメント、 》 店と客を1行にする部分も教えていただけないでしょうか? それ、最初の質問文になかったでしょ? 至極簡単だけど、後出しジャンケンは嫌いです!(`´) 最初に言うべきでした。

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

データ例 Sheet1 A1:C9 大前提として、 A列(第1キー)+B列(第2キー)でソートしておくこと。 店舗  顧客  商品 A店 あ ア A店 あ イ A店 ああ ウ B店 い ア B店 い エ B店 い オ B店 おお ク B店 おお ク ーーー Sheet2をアウトプット用に確保 ーーー 標準モジュールに Sub test01() '---シート定義 インプットとアウトプット Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") '--- i = 2 'Sh1のデータスタート行 '--- maeKey = String(10, " ") & String(10, " ") Lr = sh1.Range("A100000").End(xlUp).Row 'Sh1のデータ最終行 MsgBox Lr k = 1 'Sh2用の書き出し最初の行ポインター m = 3 'Sh2で、商品は、C列から '==========行ごと繰り返し=========== For i = 2 To Lr '---第1キー keyA = String(10, " ") Mid(keyA, 1, Len(sh1.Cells(i, "A"))) = sh1.Cells(i, "A") 'Midステートメント '---第2キー keyB = String(10, " ") Mid(keyB, 1, Len(sh1.Cells(i, "B"))) = sh1.Cells(i, "B") '=========両キーを結合 Key = keyA & keyB '---結合したキーの行変化による変化をチェック If Key = maeKey Then '--同じ sh2.Cells(k, m) = sh1.Cells(i, "C") m = m + 1 Else '--変わった k = k + 1 sh2.Cells(k, "A") = sh1.Cells(i, "A") sh2.Cells(k, "B") = sh1.Cells(i, "B") sh2.Cells(k, "c") = sh1.Cells(i, "C") m = 4 '次はD列へデータセット End If maeKey = Key Next i End Sub ーーーー 実行結果 Sheet2 A2:E5 A店 あ ア イ A店 ああ ウ B店 い ア エ オ B店 おお ク ク Sheet2の第1行見出し文言は略。 Mid関数でなく、Midステートメントの利用は珍しいかも。 keyAとKeyBは「&」で結合しても良いかも。定桁性を持たせて結合したのは意識的なのだが、必要かどうか、迷いもある。 データ例が少数でしかやってないので、十分チェックしてください。 ーー このソート+前行と比較する、のロジックは、旧くからあるものです。昔は「コントロールブレーク」でよく使った。 出来れば、ピボットテーブルでやりたいが、合計計数数字でなく、明細のままにできるのかな、自信なくVBAでやった。

utdx019
質問者

お礼

ご回答ありがとうございました。 今回、VBAを利用する際に参考にさせていただきます。

  • SI299792
  • ベストアンサー率48% (713/1473)
回答No.4

セル位置が書いてありません。勝手に画像の様な表とします。 店舗順に並んでいるとします。 D2: =INT(D1)+(A1<>A2)&"."&COUNTIF(A$2:A2,A2) 下へコピペ。(ワークエリアです。目障りなら非表示、又はフォントを白にして下さい。) E2: =IFERROR(INDEX(A:A,MATCH(ROW()-1&".1",$D:$D,0)),"") F2へコピペ。 G2: =IFERROR(INDEX($C:$C,MATCH(ROW()-1&"."&COLUMN(A:A),$D:$D,0)),"") 右へコピペ。 E2:G2 を下へコピペ。

utdx019
質問者

お礼

ご回答ありがとうございました。 関数の組み合わせで、ここまでできることを学びました。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

添付図参照(Excel 2019)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓

utdx019
質問者

補足

ご回答ありがとうございます。 関数を入力したのですが、excel2013だからなのか?入力関数がそのまま表示された状態になっています。書式も標準なのですが。 店と客を1行にする部分も教えていただけないでしょうか? よろしくお願いします。

回答No.2

それをやってしまうとスペースなどもないため、文字が横並び一直線になって見にくくなると思うのですが…。 統合やピポットテーブルをご使用になられることをオススメします。

utdx019
質問者

お礼

ご回答ありがとうございます。 ピボットは事前に試していたのですが、詰まれないので空きが出てしまいます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

ピボットテーブルを使ってみて下さい。

utdx019
質問者

お礼

ご回答ありがとうございます。 ピボットは事前に試していたのですが、詰まれないので空きが出てしまいます。

関連するQ&A

  • エクセルで見積書を作成したいのですが

    エクセルで見積書を作成したいのですが 商品名  個数(単位)  単価  金額 1     A      ア   10000 2     B      イ   10000 3     C      ウ   10000 4     D      エ   10000 のようにリストを作成して、 実際には 商品名  個数(単位)  単価  金額 2     B      イ   10000 1     A      ア   10000 3     C      ウ   10000 1     A      ア   10000 のように、リストの中から選択できるように したいのです。 ネットや本を見ながらやってみましたが、 初心者の為、上手くいきません。 詳しい方、教えてください。 宜しくお願いします。

  • Excel(2000)で行毎にセルをみて、値を返す

    例えば、以下のようなデータがあったとして、各行毎に左から見た結果、最初にデータがあったセルの列の1行のセルの値を各行のG列に返したい。 ______A__B__C__D__E__F__G__ 1行_ア__イ__ウ__エ__オ__カ____ 2行_1__3__5__2__4__1__ア__ 3行_____2__5__1__5__4__イ__ 4行_____________2__8__2__エ__ 5行_____2______2__1__4__イ__ 6行_________5______2______ウ__ G列に結果。 例えば、G3のセルに何らかの関数を入れて、A3~F3を左から見た結果、B3に2というデータがあるので、その列の1行であるB1の値、イをG3に返すといったないようです。 _ は、スペースをとるためのものです。 実際のデータは500行あり、各行の検索する列数は23列あります。 よろしくお願い致します。

  • エクセルのデータ抽出です

    データの抽出ですが,オートフィルタでは上手くいきません。 データが以下のように配列してあります(ア~は人名が入ります)     A  B  C ア  1  2  3 イ  2 ウ  3 エ  2  3 このような状況からたとえば,3のデータを有するア・ウ・エ(の3名)を一度に抽出することは出来ますでしょうか。

  • リットル・デシリットル・ミリリットルの計算方法教えて下さい

    ・かさの多い順に左から記号を書きます。  正しいのはどれでしょう。 ア16dl イ1300ml ウ1l7dl エ900ml  (1)ア→ウ→イ→エ  (2)ウ→ア→イ→エ  (3)ウ→イ→ア→エ  (4)エ→イ→ア→ウ ○1l=10dl 1l=1000ml というのを教科書で習ったのですがすべて同じ単位 にそろえる事ができないのですが,どうやって 教えたらいいのでしょう…? 親の私がなやんでしまって^^; すいません!教えてください。

  • Excel2000:既存一覧のデータを任意に配列しなおす

    <現一覧>(Sheet1)    A      B  C  D    E   F 1 部門CD  部門 ID 内容 カテゴリ 分類 2 130    経理  1  あ   ア    a 3 130    経理  2  い   イ    b 4 130    経理  3  う   ア    a 5 110    総務  4  え   ウ    a 6 110    総務  5  お   イ    d 7 550    営業  6  か   ウ    c 8 550    営業  7  き   オ    c 9 550    営業  8  く    オ    c 現在、上記の一覧があります。 これを、以下のそれぞれ二つの一覧に、内容の配列を変えて作成出来るでしょうか。 ------------------------------------------ 一覧(1) ・複数ある同じ「部門」と「部門CD」をまとめる ・「部門CD」と「カテゴリ」をキーにし、「内容」を1セル上にまとめて配列する。 (Sheet2)    A     B   C  D  E  F G 1 部門CD 部門 ア イ ウ エ オ 2  130   経理  あ い             う 3  110   総務     え             お 4  550   営業      か    き                      く ------------------------------------------ 一覧(2) ・複数ある同じ「分類」をまとめる ・「分類」と「カテゴリ」をキーにし、該当する「内容」を1セル上にまとめて配列する。 (Sheet3)    A  B  C D  E  F 1 分類 ア イ ウ エ オ 2  a    あ   え       う 3  b     い 4  c        か   き                 く 5  d     お ------------------------------------------ こんなこと、なるべくなら関数で出来ますでしょうか。

  • 展開を教えてください。

    (A+B)(A-B)=A^2-B^2を利用して202×198の答えを出す方法は202×198=(ア+イ)(ウ-エ)=200^2-オ^2=39996 ア、イ、ウ、エ、オに該当する数と計算方法を教えてください。

  • 複数条件に当てはまる行の抽出をするSQL文の書き方

    SQL文の書き方について教えてください。 商品  横   縦 A    1   3 A    1   4 A    2   5 A    3   5 B    1   3 B    1   4 B    1   5 上記表から、商品毎に、縦が最大(第1優先)で、横が最小の行をとってくるというSQLを書いて、以下のように取り出されるようにしたいと考えています。 商品  横   縦 A    2   5 B    1   5 SQL初心者でうまく書けませんでした。 どうかご指導お願いします。

  • エクセルで多数シートの表を1シートにまとめる方法

     エクセルで下記のような表があり、店舗別に100店舗分のシートがあります。それを分類A、B別に1枚のシートにしたいのですが、簡単に作る方法はあるでしょうか。 【店名ア シート】 分類A 個数 商品1 60 商品2 40 商品3 20 分類B 商品4 50 商品5 80 商品6 30    ↓↓↓ 【分類Aシート】         【分類Bシート】 店名ア 商品1 60       店名ア 商品4 50       商品2 40              商品5 80        商品3 20             商品6 30 店名イ 商品1 30       店名イ 商品4 60        商品2 10             商品5 40      商品3 20             商品6 20

  • 【Excel】 複数条件の合計

    A   B   C 1 8/1  ア  1,000 2 8/3  イ  2,000 3 8/2  エ  1,000 4 8/5  ア  3,000 5 8/3  オ  4,000 6 8/5  イ  1,000 ・ ・ Aに日付、Bに項目、Cに金額という 上の様な表があります。 D1 に 本日の 項目 ア の 合計金額を出す場合の 数式を教えてください。

  • 数IIの問題です

    関数y=5sin(ax+b)のa=アとb=イ/ウπの値を求めよ a>0, 0<b<2πとする また0≦x≦2πのときy=5sin(ax+b)においてy=0となるxの解はエ個である。 ア~エまで解説お願いします。

専門家に質問してみよう