• ベストアンサー

エクセルでこんな集計方法が出来ますか?

よろしくお願いします。 エクセル表の1行(横方向)に、商品(アルファベット記号)が売れた順番に 1個づつ左側からインプットされてます。 A,A,B,D,F,F,F,A,A,B,B,E,・・・・のように、 この1行の商品を売れた順に、以下のように整理したいのですが、 A 2、B 1、D 1、F 3、A 2、B 2、E 1、・・・・(これが欲しいデータです) 注:A 2、とは、Aが連続して2個売れたの意味:   整理は、Aのセルと2のセルでセルを2つ使う。    勝手ながら、マクロの知識は全くありませんので エクセルの関数で教えていただけるようお願いします。 OfficeXP、を利用してます。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

算式を簡単にするためにB1から文字を入力します。A列には入力はないとします。 B1~M1に A、A、B、D、F、F、F、A、A、B、B、E が入力されている例です。 2~4行目を計算に使います。結果は5行目に出力します。 <重複の判定> B2 : =(B1=A1)*1 、これをC2~M2にコピー <連続した個数の計算> B3 : =IF(B2+C2=0,B2+1,IF(AND(B2=1,C2=0),COLUMN()-SUM($A$3:A3)-1,""))    これをC3~M3にコピー <詰めて表示するために表示すべき列を求める> C4 : =IF(COUNT($B$3:$M$3)-((COLUMN()-1)/2-1)>0,      LARGE(IF($B$3:$M$3<>"",COLUMN($B$3:$M$3),""),         COUNT($B$3:$M$3)-((COLUMN()-1)/2-1))-1,"")    として(上は連続した算式です)、Ctrl+Shift+Enter で登録。(配列数式として登録)    これを、E4、G4、I4、K4、M4、O4、Q4 ・・・にコピー。(1列おきに、多めにコピーしておきます) <最終結果の編集> B5 : =IF(SUM(C4)-1>=0,OFFSET($B$1,0,C4-1),"") C5 : =IF(SUM(C4)-1>=0,OFFSET($B$1,2,C4-1),"")    このペアを、D5、F5、H5、J5、L5、N5、P5 ・・・にコピーします。 2~4行目を非表示にすれば、計算に使用した部分を隠せます。 実際は何列使うか分からないので、『$B$3:$M$3』を『$B$3:$IV$3』にしておけば大丈夫でしょう。 このように関数を使って出力できますが、マクロを使って出力したほうがはるかに簡単でしょう。 かつ、分かり易く表現できるでしょう。

abouka
質問者

お礼

nishi6 様 ご回答ありがとうございます。 テストデータを入れて、実験した中継です。 <連続した個数の計算> テストし、求める数値が3行目に見えた時 心臓がドキドキしました。 <詰めて表示するために表示すべき列を求める> 3行にわたる数式をコピー、ペーストで、本当かしら?、 出てきて頂戴!!と祈る気持ちでエンターしました。 数値が出ましたが、ただの数値で、すこし、拍子ぬけ。 <最終結果の編集> コピー、ペーストで、 エイヤーとエンター!! 『出来た! 出た 出た 月も笑顔も みんな出た !!』 今日もまたすばらしい日です。 ご回答感謝します。ありがとうございました。 追伸;マクロを使って出力したほうがはるかに簡単でしょう かつ、分かり易く表現、、、、。  んーーーmm。勉強したいが、頭が追いつかなく、挫折中です。

その他の回答 (3)

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

出来あがった体裁は少しご希望のものと違うかもしれませんが、 (1)元データを「並べ替えせず」に、A2からA13までA,A,B,D,F,F,F,A,A,B,B,Eと入っているとして(A1は見だしの商品名と仮にする。必須) (2)A3からB13まで範囲指定して   データ-集計(B)-グループの基準「商品名」   「集計の方法」は「データの個数」-  集計するフィールド「商品名」-「集計行をデータの下に挿入する」をチェック-OKで 表ができるが、ブック名の下の集計レベル「123」の 「2」をクリックすると 商品名 A データの個数 2 B データの個数 1 D データの個数 1 F データの個数 3 A データの個数 2 B データの個数 2 F データの個数 1 総合計 12 となります。

abouka
質問者

お礼

imogasi 様 再度のご回答ありがとうございます。 ご指示の方法で最終のデータ個数が現れました。 目で数えていることを思うと、10倍早く、正確に 出来ます。後で、ちょっと細工をして、 横並びにコピー&ペーストで済むわけです。 勉強になりました。 今回は#3の回答者様の方法(複雑な関数の意味を理解しておりませんが)、 これをセットしておき、対処することにしました。 皆様のご回答に本当に感謝しております。 ありがとうございました。

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

考え易くするため、行と列を入れ替えて見ました。 A1:H2までに下記テストデータを入れます。 A B C A D A B C 1 2 3 2 4 5 6 7 A1:H2を範囲指定して、編集-コピー A4を指定して、編集-形式を選択して貼りつけ-(形式を選択して貼りつけの画面右下の)「行と列を入れ替える」-OK これでA4:B11に A 1 B 2 C 3 A 2 D 4 A 5 B 6 C 7 が現われます。本例では仮にA3に品名、B3に数量と入れます。 (2)A4からB11まで範囲指定して データ-並べ替え-第1キーは品名A列、第2キーは 数量B列を指定してOK 品名 数量 A 1 A 2 A 5 B 2 B 6 C 3 C 7 D 4 となりました。 (3)A3からB11まで範囲指定して   データ-集計(B)-グループの基準「品名」   「集計の方法」は合計(「データの個数」でも出来る)-  集計するフィールド「数量」-「集計行をデータの下に挿  入する」をチェック-OKで ---- 品名 数量 A 1 A 2 A 5 A 計 8 B 2 B 6 B 計 8 C 3 C 7 C 計 10 D 4 D 計 4 総計 30 となります。 ブック名のすぐ下の「123」の「2」をクリック 品名 数量 A 計 8 B 計 8 C 計 10 D 計 4 総計 30 となります。 また行と列の入れ替えコピーをします。 ここで明細を消したいのだが、残念ながらその方法がわかりません。縦列のままではダメですか。

abouka
質問者

補足

imogasi 様 ご回答ありがとうございます。 imogasi様のご回答を理解できましたが、 私の説明が不足しており、求める答えとなりません。 申し訳ありませんが、ここに、不足な点を記入します。 アルファベット(商品名);Aは、Aが1個売れたことを意味します。 A,A,A,・・・では、Aが(時間の経過で連続して)3個売れたことになります。 (データ表は、右方向に60セルがあり、60個をオーバーすると、 2行目から、また、商品名が始まります:アルファベットだらけの表です) したがって、以下テストデータの数量はすべて”1個”です。 (A A B C C C A D ・・)は、Aが2個売れて、次にBが1個、 Cが3個、またAが1個売れて、・・・・ です。 A 2、B 1、C 3、A 1、D 1、・・・・ と整理できるのが、希望です。 売上個数集計でなく、売れた品名の順番-個数の変化を確認するのが 目的です。 なお、整理するのに、行と列を入れ替えることはOKです。 ご面倒でもよろしくお願いします。

  • o_tooru
  • ベストアンサー率37% (915/2412)
回答No.1

こんばんわ、疑問は尽きませんね。 さてご質問の件ですが、ピボットテーブルあたりが使えそうな気がしますが。・・・Aがいくつ売れて、Bがいくつ売れたかをカウントするので有れば使えるのですが宇。 ただ、データーが横方向というのがちょっと難しいですね。どうして横方向なのでしょうか? また、Aが連続して2個売れたというのがよく分かりません。全体としてはAは4つ売れていますよね? Aが売れた総計ではなく、連続して売れたことに意味を求めるので有れば、手計算でやる方法が適している気がしますが・・・ ちょっと、試してみてください。分からなければ説明しますが。

abouka
質問者

お礼

o_tooru 様 今回の私の質問に ご回答いただきありがとうございました。 私の抱えていた問題は、#3の回答者様の方法で100%満足しましたので、 質問を締め切ります。 ありがとうございました。

abouka
質問者

補足

o_tooru 様 ご回答ありがとうございます。 昨夜は質問をしてから早めに就寝のため、ご連絡が遅くなりごめんなさい。 補足です。 1)ピボットテーブルあたりが  ピボットテーブルと訊いて、訳が分からない世界で困っております。 2)データーが横方向  これは、縦方向でも構いません。並べ替えしますので。 3)Aが連続して2個売れた  時間の経過で、Aが1個売れて、その後また、Aが1個売れた。という意味。  Aが2個売れたと考えても良いです。 4)全体としてはAは4つ売れていますよね  Aが売れた後、別の商品が売れて、またAが売れ、計4個ですが、  その間に、別の商品が売れたことがポイントで、その時間的な売れ行き変化が  作業の目的です。(#2の回答者様への補足も参照してください。) 5)手計算でやる方法が適している  おっしゃるとおりで、今は目を真っ赤にして手計算です。 よろしくお願いします。

関連するQ&A