- ベストアンサー
Excelで複数行を1グループ単位に横詰で配列
店舗 顧客 商品 A店 あ ア A店 あ イ B店 い ア B店 い エ B店 い オ これを、 店舗 顧客 商品 A店 あ ア イ B店 い ア エ オ 顧客単位に商品を横に詰めて配列したいのです。 どうぞ、よろしくご指導お願いします。
- utdx019
- お礼率89% (33/37)
- Excel(エクセル)
- 回答数7
- ありがとう数6
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
[No.3補足]へのコメント、 》 関数を入力したのですが、excel2013だからなのか? 「excel2013だから」ではありません、入力に必須な操作が抜けていたから。 添付図に示した[数式バー]に表示された式の姿を凝視してください。 式の両端に括弧{}があるでしょ? ご存じだと思って説明を省略してました。私も、… 》 【お断わり】上式は必ず配列(CSE)数式として入力のこと を付記しておくべきでした。m(_._)m 「関数を入力した」ら、それを確定するために普通は Enterするべきところを Ctrl+Shift+Enterを「エイヤッ!」と憎々し気に叩き付けてください。そうしたら自動的に当該式が当該括弧で囲われます。決してキーボードから当該括弧を入力してはなりませぬぞ!
その他の回答 (6)
- msMike
- ベストアンサー率20% (363/1775)
[No.3補足]へのコメント、 》 店と客を1行にする部分も教えていただけないでしょうか? それ、最初の質問文になかったでしょ? 至極簡単だけど、後出しジャンケンは嫌いです!(`´) 最初に言うべきでした。
- imogasi
- ベストアンサー率27% (4737/17068)
データ例 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でやった。
お礼
ご回答ありがとうございました。 今回、VBAを利用する際に参考にさせていただきます。
- SI299792
- ベストアンサー率48% (713/1473)
セル位置が書いてありません。勝手に画像の様な表とします。 店舗順に並んでいるとします。 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 を下へコピペ。
お礼
ご回答ありがとうございました。 関数の組み合わせで、ここまでできることを学びました。
- msMike
- ベストアンサー率20% (363/1775)
添付図参照(Excel 2019)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄↓↓↓↓↓↓↓↓↓↓↓↓↓
補足
ご回答ありがとうございます。 関数を入力したのですが、excel2013だからなのか?入力関数がそのまま表示された状態になっています。書式も標準なのですが。 店と客を1行にする部分も教えていただけないでしょうか? よろしくお願いします。
- iyonohanamuko
- ベストアンサー率54% (6745/12376)
それをやってしまうとスペースなどもないため、文字が横並び一直線になって見にくくなると思うのですが…。 統合やピポットテーブルをご使用になられることをオススメします。
お礼
ご回答ありがとうございます。 ピボットは事前に試していたのですが、詰まれないので空きが出てしまいます。
- aokii
- ベストアンサー率23% (5210/22062)
ピボットテーブルを使ってみて下さい。
お礼
ご回答ありがとうございます。 ピボットは事前に試していたのですが、詰まれないので空きが出てしまいます。
関連する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 のように、リストの中から選択できるように したいのです。 ネットや本を見ながらやってみましたが、 初心者の為、上手くいきません。 詳しい方、教えてください。 宜しくお願いします。
- ベストアンサー
- Windows XP
- 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初心者でうまく書けませんでした。 どうかご指導お願いします。
- 締切済み
- Oracle
- エクセルで多数シートの表を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 に 本日の 項目 ア の 合計金額を出す場合の 数式を教えてください。
- ベストアンサー
- オフィス系ソフト
お礼
Ctrl+Shift+Enterの件、ありがとうございました。 {}を手入力してりました。 こちらとしては後出しをしたつもりではないですが、お気にさわったようで申し訳ございません、どうにか自力で対応します。