[[20100628142116]] 『データ選択のマクロ』(クロ助) ページの最後に飛ぶ

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

 

『データ選択のマクロ』(クロ助)
 SHEET1の3種類のデータを読み込んでSHEET2のデータを自動で貼り付けするマクロを
 組みたいのですがどのような方法がありますか?
 D列に日付を入力すると同じ日付の列からSHEET2のデータが個数分だけ貼り付けられるイメージです。
 関数で可能なら関数でもかまいません。
 ※列A:40種 列B:4種 列C:2種 

 例
  SHEET1  

  A B C D E F G H I J K L ・・・・・・・
 1 日付→・ 6/1 ・ ・23 24 25 ・ ・ 
 2 L4 CR H 6/25           25 25 23 23 ・・・・・・・
 3
 4 E4 SL H 6/23   20 20 15 15 ・・・・・・
 5
 6 E4 CR Y  6/24        23 23 22 20 ・・・・・・
 7 
 8       

 SHEET2のDATA 

   A B C D E F G H I  J  K  L  M  N  O  P  Q 
  1 L4 CR H  25 25 23 23 22 20 20 20 18 18 15 15 15 10     
  2 L4 CR Y  23 23 22 20 20 20 18 20 18 18 15 
  3 L4 SL H  25 25 23 23 22 20 20 20 18 18 15   
  4 L4 SL Y  20 20 18 18 15 15 15 10 
  5 L4 BE H  25 20 20 20 18 18 15 15 15 10 15 15  
  6 L4 BE Y  25 25 23 23 22 10 
  7 E4 
  8 E4 CR H  25 25 23 23 22 20 20 20 18 18 15 15 10     
  9 E4 CR Y  23 23 22 20 20 20 18 18 15 
 10 E4 SL H  20 20 15 15 20 18 18 15   
 11 E4 SL Y  20 20 18 18 15 10 
 12 E4 BE H  25 20 20 20 15 15 15 10 15 15  
 13 E4 BE Y  25 25 23 23 
 14 ・
 15 ・
 16 ・


 条件が今一理解できませんが、上記の例で行けば6月30日より先のデータはどうなりますか。
 空白?それとも、7月1日以降につながります?
 それから、Sheet1の1行目はE列から1が始まるべきではないでしょうか。
 Sheet2のE2セル
=IF($D2<=E$1,OFFSET(Sheet2!$D$1,SUMPRODUCT((Sheet2!$A$1:$A$13=$A2)*(Sheet2!$B$1:$B$13=$B2)*(Sheet2!$C$1:$C$13=$C2)*ROW(Sheet2!$A$1:$A$13))-1,E$1-$D2),"")

 で、右方向にコピー

 (川野鮎太郎)


 鮎さん、お久しぶりです^^
 
 ぜんぜんスマートに出来なかったwww
 
 作業列を使用します。
 
 Sheet1
 AJ2 =A2&B2&C2
 以下コピー
 
 Sheet2
 AI1 =A1&B1&C1
 以下コピー
 
 Sheet1
 E2 =IF(OR($A2="",COUNT(OFFSET(Sheet2!$D$1,MATCH($AJ2,Sheet2!$AI$1:$AI$19,)-1,,,31))<COUNT($D2:D2),DAY($D2)>E$1),"",
    INDEX(Sheet2!$D$1:$AH$20,MATCH($AJ2,Sheet2!$AI$1:$AI$20,),COUNT($D2:D2)))
 必要範囲までコピー
 
 
 葉行列を使用しない場合は、数式がちょっと長くなりますが、、、

 Sheet1
 E2 =IF(OR($A2="",COUNT(OFFSET(Sheet2!$D$1,MATCH($A$2&$B$2&$C$2,INDEX(Sheet2!$A$1:$A$20&Sheet2!$B$1:$B$20&Sheet2!$C$1:$C$20,),)-1,,,31))<COUNT($D2:D2),DAY($D2)>E$1),"",
    INDEX(Sheet2!$D$1:$AH$20,MATCH($A$2&$B$2&$C$2,INDEX(Sheet2!$A$1:$A$20&Sheet2!$B$1:$B$20&Sheet2!$C$1:$C$20,),),COUNT($D2:D2)))
 
 ※範囲は適当です。
 
 (キリキ)(〃⌒o⌒)b 
 


 E2:=IF($D2>E$1,"",INDEX(Sheet2!$D$1:$CZ$100,MATCH($A2&$B2&$C2,Sheet2!$A$1:$A$100&Sheet2!$B$1:$B$100&Sheet2!$C$1:$C$100,0),E$1-$D2+1)&"")
  Shift+Ctrl+Enter で確定     (NB)

コメント返信:

[ 一覧(最新更新順) ]


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