• ベストアンサー

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

よろしくお願いします。 エクセル表の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/17068)
回答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/17068)
回答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
  • ベストアンサー率38% (899/2364)
回答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

  • Excelでの集計その2

    以前、似た質問をしたものです。下記のケース を、Excel(Excel2000)で作れるでしょうか 次のようなデータが10000件ほどあります。 ------------- (A)--------------------------- 行 商品コード 品名 品番  数量   金額 1 10010005   A商品 A-005  5   1000 2 10010006   B商品 B-006  5   1050 3 10010006  B商品 B-006  6   1100 4 10010007   C商品 C-007  10   100 5 10010008   D商品 D-008   6   60 6 10010009   E商品 E-009   3   300 7 10010010   F商品 F-010  7   700 8 10010010   F商品 F-010   3   300 ------------- (B)--------------------------- 行 商品コード 品名 品番  数量   金額 1 10010005   A商品 A-005  5   1000 2 10010006   B商品 B-006  11   2150 3 10010007   C商品 C-007  10   100 4 10010008   D商品 D-008   6   60 5 10010009   E商品 E-009   3   300 6 10010010   F商品 F-010  10   1000 ------------------------------------------------- (A)のような商品コードが一部同じデータを商品コードをキーにして、数量、金額を集計して(B)のようにしたいのですが、Excelでどのようにしたら出来るでしょうか? よろしくお願いします。

  • エクセルで一致しないものを抜き出す方法

     またエクセル関数の質問があります。 セルA1:A6にA~Fがランダムに入力されています。 セルB1:B6にA~Fの一部がランダムに入力されています。空白もあります。 別なセルに一致しない記号を表示させたいのですが.... 例   A B C D 1 F C B 2 D   D 3 B A 4 A F 5 E 6 C E 別なセル(上記ではC1、C2)に表示させられますか? A列とB列の記号は変化します。  よろしくお願いします。

  • エクセルで集計

    エクセルでの合計について教えていただきたいのです。 A1~A10000まで日付が、B1~B10000まで数値が入力されています。 B列の数値を50行ごとに合計し、C列に表示する方法。 現在は、sum関数で手作業です。 簡単に表示できる方法を教えてください。 また、C列に合計のある行をD列(D1・D2・D3・・・)、E列(E1・E2・E3・・・)、F列(F1・F2・F3・・・)に並べたいのです。(50行ごとに間引いて表示するような感じです) 現在は、=C50・=C100・=C150のように手作業です。 もっと多量のデータが入力されたシートもあります。また、100行ごと150行ごとなど合計行が違う場合もあります。 エクセル初心者です。 よろしくお願いいたします。

  • excelのセルの並べ替え。

    Excelの操作で迷っています。詳しい方の知恵を拝借できたらと思います。 以下のようにデータの入力されたセルが並んでいます(アルファベット1文字が1セルです)。 A B C D E F G H I J K 横に何セル並んでいるかは、行によってまちまちです。このようなデータが、数千行あります。これを、以下のように1列に並べ替えたいのです。 A B C D E F G 「行列を入れ替えてコピー」ではなかなかに大変なので、何か良い方法を探しています。よろしくお願いいたします

  • Excelで複数の結果を一つのセルに表示させる方法

    データ    A B C D E F G ・・・  イ * *   *  ロ   *  ハ  *    * から、行ごとに集計して、「*」のあるアルファベットを一つのセルに表示させるということをしたいのですが、良い方法が見つかりません。 例えば、イの行であれば[A B D]、ハの行であれば「B E」という感じです。 「LOOKUP関数」だと、最初にHITしたものしか返ってきません。 一つではなく、複数欲しいのです。 Excelに不慣れな者ですが、複雑な式であっても何とか頑張りたいと思います。 どなたかご教示お願いします。

  • エクセルの抽出方法に困っております。

    記号を整理するのに困っております。 具体例で示します。     A   B  C   D  E 1 3Z017 4K058 3Z084 ----- 4K058 2 3Z014  ----- ----- ----- 3Z014 3 3Z093 3Z084 3Z079 3Z034 3Z079 4 3Z033 2G060 3Z034 4K058 3Z034 5 3Z093 3Z079 3Z080 ----- 3Z079 6 4F100 3Z079 ----- ----- 3Z079 7 4P016 ----- ----- ----- 4P016 あるカテゴリーに対して付与されている記号が、行方向のA~Dの各セルに入っています。 一番目のカテゴリーには、1行目の 3Z017 4K058 3Z084 が付与されています。 「-----」は記号なしという意味です。 同様に、二番目のカテゴリーには、2行目の 3Z014 が付与されています。 具体的な作業としては、 上記A1セル~D7セルのデータに対して、まず、1行目の各セルの記号の個数を、A1セル~D7セルの範囲で、数えます。 上の例では、「3Z017」 は1つ、「4K058」 は2つ、「3Z084」 は2つ、「-----」 は10こ、あります。 そのため、「-----」以外で一番数の多い、「4K058」 か 「3Z084」 を選択するのですが、左側優先で 4K058 をE1セルに入れます。 この作業をすべての行(上の例では7行)に対して行います。 実際には、10~20列程度、5000~7000行程度あります。 関数を使用して、この作業を行いたいのですが、私の知識では限界に達してしましました。 どなたかにご教授頂ければとご質問いたしました。 どうぞよろしくお願いいたします。

  • Excelでセルの英字を取得する関数

    Excelでセルの英字を取得する関数を教えて下さい。  A B C D E F G 1 2 3 4 5 6 7 エクセルは 横のヘッダにアルファベットが並んでいます。 縦のヘッダに数値が並んでいます。 縦のヘッダは =ROW() で求まります。 1行目で書けば1 5行目で書けば5 と返ってきます。 同じ様に、 =COLUMN()は A列で書けば1 E列で書けば5 と返ってきます。 A列で書けばA E列で書けばE と返って来る関数が欲しいです。

  • エクセルにて、各部署の物品の集計を行っております。

    エクセルにて、各部署の物品の集計を行っております。 全部の部署の物品を集計後、全体の数を出したいのですが、簡単に出来るアイディア等はありませんでしょうか? Aセルに部署名、Bセルに物品名、Cセルには物品の規格、Dセルに商品コード、Eセルは固定で1の数字、Fセルに単位(個、枚etc)、Gセルに単価、Hセルに集計した数が書いてあります。 このうち、Aの部署名は無視して、他の部分が共通してる項目を併せて、合計を出したいのです。 たとえば・・・ 2のセルにはAセル「営業部」Bセル「鉛筆」Cセル「20cm」Dセル「1900」Eセル「1」Fセル「本」Gセル「30」Hセル「250」 3のセルにはAセル「総務部」Bセル「鉛筆」Cセル「20cm」Dセル「1900」Eセル「1」Fセル「本」Gセル「30」Hセル「100」 4のセルにはAセル「受付」Bセル「鉛筆」Cセル「20cm」Dセル「1900」Eセル「1」Fセル「本」Gセル「30」Hセル「50」 5のセルにはAセル「営業部」Bセル「消しゴム」Cセル「5cm」Dセル「1911」Eセル「1」Fセル「個」Gセル「100」Hセル「20」 6のセルにはAセル「総務部」Bセル「消しゴム」Cセル「5cm」Dセル「1911」Eセル「1」Fセル「個」Gセル「100」Hセル「30」 ・ ・ ・ とこういった形で並んでいるのを、別のシートにして、 2のAセルは空白、Bセル「鉛筆」Cセル「20cm」Dセル「1900」Eセル「1」Fセル「本」Gセル「30」Hセル「400(250+100+50=400)」 3のAセルは空白、Bセル「消しゴム」Cセル「5cm」Dセル「1911」Eセル「1」Fセル「個」Gセル「100」Hセル「50(20+30)」 ・ ・ ・ としたいのです。 簡単にいうとHの合計を出したい、という形になるのですが、セルの形式などはそのまま残して行いたいです。 わかりにくい説明で申し訳ありませんが、宜しくお願いいたします。

  • テキストファイルのデータをエクセルへコピーのやり方

    よろしくお願いします。 エクセル2000を使っています。 テキストのデータで A1/B1/C1    /はスペースです。 D1/E1/F1    データの長さは全部違います。 A2/B2/C2     D2/E2/F2 A3/B3/C3     D3/E3/F3      ・    ・(続く) といったものがあります。これをエクセルで    A列 B列 C列 D列 E列 1行 A1 B1 C1 D1 E1 2行 A2 B2 C2 D2 E2  ・・・ 3行 A3 B3 C3 D3 E3  (続く)          ・          ・(続く) という感じで別々のセルにいれて貼り付けしたいのです。 テキストデータを別々のセルに貼り付けする方法は 過去ログで「区切り位置」というのをつかえばいいというのはわかりましたが、この場合の複数行にわたるテキストデータをエクセルの1行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。 良い解決法をお願いします。

  • エクセルで組み合わせの集計方法

    またお世話になります。 例えば下記のようなデータがあるとします。  |B|C|D|E| ---------------------- 1|a|b|c|e| ---------------------- 2|b|c|a|e| ---------------------- 3|a|e|f|g| ---------------------- 4|b|f|e|a| ----------------------      :      : (データは下へ追加されていきます) 上記のデータを行毎に調べて、各値と最も多い組み合わせを調べるにはどうしたらよいでしょうか? 例えば「a」と最も多く組み合わせているのは、「e」となります。 あた「b」と多く組み合わせているのは、「e」となります。 このように各入力値ごとに、最も多く組み合わせているものを抽出するにはどのようにしたら良いでしょうか。 実際には文字ではなく数字を入力しています。 私が考えている方法は、すべての文字に対しての組み合わせ表を作成して、そこから最も多いそれぞれの組み合わせを求めるということですが、これではかなりの量の組み合わせデータを作成しなければならないことになります。 もっと簡単にできる方法はないかと思い、こちらに質問させて頂きました。 とても難しいような気がしますが、アドバイスをよろしく御願いします。 (エクセル98を使用しております。)

専門家に質問してみよう