[[20070410151509]] 『条件に合う複数のセルの値を表示したい』(にの) ページの最後に飛ぶ

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

 

『条件に合う複数のセルの値を表示したい』(にの)

 おせわになっております。

 以下の様な表があります。
 A     B   
 1 あいう  猫  
 2 あいう  犬  
 3 かきく  熊 
 4 かきく  鳥

 下のように、CDEへ表示するにはどうしたらいいでしょうか?
  A    B   C   D   E
 1 あいう  猫  あいう 猫  犬
 2 あいう  犬  かきく 熊  鳥
 3 かきく  熊 
 4 かきく  鳥

 過去ログなど検索しましたが探しきれませんでした。
 よろしくご教授願います。

 上の表を、下の表のようにするにはVBAコードを書く必要があります。
 (seiya)

 こんにちは〜♪

 C1セルへ
 =INDEX(A:A,101-LARGE(INDEX((MATCH(A$1:A$100&"", A$1:A$100&"",)=ROW($1:$100))*101-ROW($1:$100),0),ROW(A1)))&""

 下にコピーします。

 D1セルへ
 =INDEX($B:$B,101-LARGE(INDEX(($A$1:$A$100=$C1)*101-ROW($1:$100),0),COLUMN(A1)))&""

 右と下へコピーします。

 データ数が多い場合は、重くなりますので
 あまりお勧め出来ませんけれど。。。。

 ご参考にどうぞ〜。。。

 。。。Ms.Rin〜♪♪


 対象がごく小範囲で、A列が、同一名称のものがかたまっていることが前提ですが、
 数式でもリンクできると思います。                       (6UP)

 C1に=""&A1。
 C2に=IF(C1=$A$9,"",IF(C1="","",""&INDEX(A$1:A$9,MATCH(C1,A$1:A$9,)+COUNTIF(A$1:A$9,C1)+1)))、
 として、C2をC9までフィルドラッグ。
 D1に
 =IF(C1="","",IF(COUNTIF($A$1:$A$9,$C1)<COLUMN(A1),"",
 INDEX(INDEX($B$1:$B$9,MATCH($C1,$A$1:$A$9,)):$B$9,COLUMN(A1))))
 として、コピーしてD2:L9に貼り付け。

 データ範囲が A1:B4 だったとして
 C1=IF(COUNT(IF(MATCH($A$1:$A$4,$A$1:$A$4,0)=ROW($A$1:$A$4),ROW($A$1:$A$4)))>=ROW(A1),
INDEX($A$1:$A$4,SMALL(IF(MATCH($A$1:$A$4,$A$1:$A$4,0)=ROW($A$1:$A$4),ROW($A$1:$A$4)),ROW(A1))),"")

 入れて、 Ctrl + Shift + Enter で確定して下さい。
 そして、下行へコピーです。

 D1=IF(COUNT(IF($A$1:$A$4=$C1,ROW($A$1:$A$4)))>=COLUMN(A1),INDEX($B$1:$B$4,SMALL(IF($A$1:$A$4=$C1,ROW($A$1:$A$4)),COLUMN(A1))),"")

 と入れて、同じく Ctrl + Shift + Enter として確定して下さい。
 そして、右列へコピー、更に下行へコピーです。
 データ範囲が広い場合は、重くなるかも?

    	[A]	[B]	[C]	[D]	[E]
 [1]	あいう	猫	あいう	猫	犬
 [2]	あいう	犬	かきく	熊	鳥
 [3]	かきく	熊			
 [4]	かきく	鳥			
 [5]					

   (SS)

コメント返信:

[ 一覧(最新更新順) ]


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