• ベストアンサー

Excelについて質問です。

Excelについて質問です。 下記の表1を表2のように、 B列で同じ値のものは1つのセルにまとめ、 C列は、B列でまとめられた分を「、」で降順に並べたいのですが、 関数などを使って、簡単にできる方法はありますでしょうか。 <表1> A列  B列 A   100 B   50 B   30 B   60 C   40 C   70 D   90 <表2> A列  B列 A   100 B   30,50,60 C   40,70 D   90

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

表1がシート1に有るとします。1行目には項目名があり、2行目から下方にデータがあるとします。 作業列を作って対応します。 C2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=COUNTIF(A:A,A2),MAX(C$1:C1)+1,"")) D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(A1<>A2,B2,IF(A1=A2,D1&","&B2,""))) お求めの表はシート2に作るとしてA2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(Sheet1!C:C,ROW(A1))=0,"",INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!C:C,0))) B2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(Sheet1!C:C,ROW(A1))=0,"",INDEX(Sheet1!D:D,MATCH(ROW(A1),Sheet1!C:C,0)))

mame123456
質問者

補足

詳細に教えていただきありがとうございます。 内容把握しようとしたら私のレベルでは時間がかかりそうでしたので(すいません)、 ひとまず教えていただいた通り実践しました。 結果の出るSheet2では、B3セルが「50,30,60」となり、 降順にはならないですが、これは難しいでしょうか? (希望は「30,50,60」という順番で表示)

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2です。50,30,60となってしまうのをなくするためには関数で対応するよりも、シート1ではAおよびB列を選択した上で、「並べ替えとフィルタ」から、「ユーザー設定の並べ替え」を選択して、最優先される項目をA1セルの項目名にして、「昇順」を、次にレベルの追加で「次に優先される項目にB1セルを選択して「昇順」にしてOKします。そのようにすることでA列では同じ項目名が連続して並び、B列では同じ項目名の間で数値が昇順で並べられることになります。 これらの操作をすることで、お望みの結果がシート2に表示されます。

mame123456
質問者

お礼

なるほど!確かに事前に並び替えておけばいい話ですね。 頭が固くてお恥ずかしいです。 まさかこんな風に全てができるなんて、感激です。 関数を効率よく利用できて素敵ですね。 この度はご丁寧にご教授いただきましてありがとうございました!

  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

できますが VBAか アクセスのクロス集計クエリに なります。

mame123456
質問者

お礼

ご回答いただきありがとうございました。 知識不足でVBAはまずNG(泣) アクセスのクロス集計クエリ・・・? 全く想像できませんが、そういう方法もあるのですね。 アクセスも勉強していきたいと思っていますので、今後頭に入れて行きたいと思います。 ありがとうございました。

関連するQ&A

専門家に質問してみよう