[[20190319140139]] 『データが重複する場合セルを結合する』(とも) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『データが重複する場合セルを結合する』(とも)

 お世話になります。
 エクセル初心者です。

 Cの列に名前が入っていて、重複する名前も多くあります。
(D列〜K列に個人の必要情報が入っています)
 Bの列に曜日があります。
 Cの列の名前が重複する場合
 A列にB列を曜日を結合して入れたいのですが関数で処理できますでしょうか?

 A  B  C     D  〜
   月 田中  40歳
    火 田中  40歳
   水 田中  40歳
   月 佐藤  41歳
   月 山本  50歳
   火 山本  50歳

    ↓

   A       B     C       D
 月火水        田中  40歳
 月          佐藤  41歳
 月火         山本  50歳

 できれば関数で処理したいので
 ある程度手作業があってもいいです。

 よろしくお願いいたします。

 

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 名前が連続するのは最大何個だろうか?
(ねむねむ) 2019/03/19(火) 16:01

 最大5個までです。
 よろしくお願いいたします。
(とも) 2019/03/19(火) 16:16

 元の表がB列からD列として、G列に曜日、H列に名前、I列に年齢を抜き出し、J列からN列を作業列とする。
 G1セルに
 =J1&K1&L1&M1&N1
 と入力。
(ねむねむ) 2019/03/19(火) 16:41

 H1セルに
 =IFERROR(INDEX(C:C,SMALL(IF(FREQUENCY(IFERROR(MATCH($C$1:$C$100,$C$1:$C$100,0),""),ROW($1:$100))>0,ROW($1:$100),""),ROW(A1))),"")
 と入力し、ShiftキーとCtrlキーを押しながらEnterキーで式を確定(確定後、式が{}で囲まれればOK)してI列、および下へフィルコピーする。
(ねむねむ) 2019/03/19(火) 16:43

 J1セルに
 =IFERROR(INDEX($B:$B,MATCH($H1&COLUMN(A1),INDEX($C$1:$C$100&COUNTIF(INDIRECT("C1:C"&ROW($1:$100)),$C$1:$C$100),0),0)),"")
 と入力して(こちらは通常通りEnterで式を確定)横はN列まで及び下へフィルコピーでどうだろうか?
(ねむねむ) 2019/03/19(火) 16:45

 ねむねむ様

 ありがとうございます。
 説明不足で申し訳ございません。
 D列以降K列まで情報が色々入っており、その情報も使うので、
 N列〜W列に曜日、名前、年齢、情報1、情報2・・・と貼り付けました。

 N1セルに=X1&Y1&Z1&AA1&AB1と入れました。

 O1セルに 
=IFERROR(INDEX($B:$B,MATCH($H1&COLUMN(A1),INDEX($C$1:$C$100&COUNTIF(INDIRECT("C1:C"&ROW($1:$100)),$C$1:$C$100),0),0)),"")
W1セルおよび下までフィルコピー

 X1セルに =IFERROR(INDEX($B:$B,MATCH($H1&COLUMN(A1),INDEX($C$1:$C$100&COUNTIF(INDIRECT("C1:C"&ROW($1:$100)),$C$1:$C$100),0),0)),"")
AB1まで及び下までフィルコピー

 をしたのですが、うまくいきませんでした。
 原因を教えていただけますでしょうか?

(とも) 2019/03/19(火) 17:37


n列の曜日を結合する式は以下で不具合ありますか?
=left("月火水木金",countif(c:c,o1))

(sy) 2019/03/19(火) 19:54


 N列にご指示の式を入力しましたが、
 何も変わりませんでした。
 特にエラーメッセージも出ませんでした。

 数式の意味を理解していないので、何かミスがあるのかもわからず・・・

(とも) 2019/03/20(水) 09:09


 O1セルの式は
 =IFERROR(INDEX(C:C,SMALL(IF(FREQUENCY(IFERROR(MATCH($C$1:$C$100,$C$1:$C$100,0),""),ROW($1:$100))>0,ROW($1:$100),""),ROW(A1))),"")
 の打ち間違いだとして。

(ねむねむ) 2019/03/20(水) 09:11


 X1セルの式、
 =IFERROR(INDEX($B:$B,MATCH($H1&COLUMN(A1),INDEX($C$1:$C$100&COUNTIF(INDIRECT("C1:C"&ROW($1:$100)),$C$1:$C$100),0),0)),"")
                             ↑
 矢印部分で名前の列を参照しているのでそこをO1に変更してみてくれ。
(ねむねむ) 2019/03/20(水) 09:12

 あと、ayさんの式は人名が連続するときは必ず曜日が月、火、水、木、金で連続する場合に使える式となっている。
 (同じ人で同じ曜日が重なる場合、途中の曜日が抜ける場合には使えない)
(ねむねむ) 2019/03/20(水) 09:19

 syさん、お名前を間違えてしまってすみません。
(ねむねむ) 2019/03/20(水) 09:23

 ねむねむ様

 変更したのですが、O列からW列までの情報が名前の重複でデーターが
 整理され、0列には、曜日が入りました。←どういう規則性があるのかわからないのですが
 曜日の連結はできませんでした。

  sy様
 ねむねむ様のご指摘のように曜日が飛ぶこともあります。

 よろしくお願いいたします。
(とも) 2019/03/20(水) 13:29

 私の式は元のデータには手を付けずに式を入力したところに集計した表を作成するもの。
 O1セルに
 =IFERROR(INDEX(C:C,SMALL(IF(FREQUENCY(IFERROR(MATCH($C$1:$C$100,$C$1:$C$100,0),""),ROW($1:$100))>0,ROW($1:$100),""),ROW(A1))),"")
 と入力(Shift+Ctrl+Enterを忘れずに)

(ねむねむ) 2019/03/20(水) 13:38


 その後横にW列までと下にフィルコピー。
 X1セルに
  =IFERROR(INDEX($B:$B,MATCH($O1&COLUMN(A1),INDEX($C$1:$C$100&COUNTIF(INDIRECT("C1:C"&ROW($1:$100)),$C$1:$C$100),0),0)),"")
 と入力して横はAB列までと下へフィルコピー。
 そしてN列に
 =X1&Y1&Z1&AA1&AB1
 でどうだろうか?
(ねむねむ) 2019/03/20(水) 13:42

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.