エクセルの学校


[[20061011171152]] 『空白以外のデータを抽出する方法』(Dヤマ) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

|
| 全文検索 | 過去ログ | HOME ]

 

『空白以外のデータを抽出する方法』(Dヤマ)

 (sheet1)
      A   B     C    D
 1  コード 品名  1日  2日
 2 1001  鉛筆    10  50
 3 1002  定規        50
 4 1003  ノート  1,000 
 5 1004  筆箱    50

 上記の表は、品別、日別の仕入れ一覧(33列、500行)です。
 関数を使用して、以下の要領で31枚の日別のシートに転記したいのです。

 (sheet2)
      A   B     C 
 1  コード 品名  1日
 2 1001  鉛筆    10
 3 1003  ノート  1,000 
 4 1004  筆箱    50

 (sheet3)
      A   B     D
 1  コード 品名  2日
 2 1001  鉛筆    50
 3 1002  定規    50
 Excell2000 Windows2000のユーザーです。
 ご指導のほど、どうぞよろしくお願いいたします。


 マクロなら,少しコードを書けば出来ると
思いますが,マクロはどうでしょうか?。
 なお,シート自身は用意されているのでしょうか。番号は
 sheet4 のような感じでしょうか?。(夕焼)

 Sheet2、Sheet3共通の数式です。
 A1:C1は手入力して下さい。
 A2=IF(COUNT(OFFSET(Sheet1!$B$2,,MATCH($C$1,Sheet1!$C$1:$D$1,0),4,))<ROW($A1),"",
    INDEX(Sheet1!$A$2:$D$5,SMALL(IF(OFFSET(Sheet1!$B$2,,MATCH($C$1,Sheet1!$C$1:$D$1,0),4,)="","",
    ROW($A$1:$A$4)),ROW(A1)),MATCH(A$1,Sheet1!$A$1:$D$1,0)))
 と入力してCtrl+Shift+Enterで数式を確定。
 C列までフィルドラッグ、必要分下にフィルドラッグです。
 (ROUGE)

 夕焼さん、
 職場にマクロを使用される方がいないので、馴染みのある関数を使って作成したいと考えています(自分も使えません)。
 シートは、31日分を予め作成する予定です。
 ROUGEさん、
 ご親切に式を全部書いていただきありがとうございました。
 申し分なく稼動することを確認しましたが、実際の表に応用できずに悩んでいます。
 仕入れ一覧には、表題のためにヘッダーに数行の余白があったり、転記しない余分な列デー タがあったりします。
 式を関数毎に分解し、一つ一つどのように機能するのかを確認していますが、INDEX関数は難しいです。
 時間はかかりますが、引続き勉強してみます。(Dヤマ)


 =IF(COUNT(Sheet1!$C$2:$C$5)<ROW(A1),"",INDEX(Sheet1!A$2:A$5,SMALL(IF(Sheet1!
$C$2:$C$5<>"",ROW($A$1:$A$4),""),ROW(A1))))

 と入力してCtrl+Shift+Enterで数式を確定。
 C列までフィルドラッグ、必要分下にフィルドラッグです。
 COUNT($C$2:$C$5) 数値の入ったセル数をかぞえる
ROW(A1)   数式の入ったセルの最初の行を 1とし 次の行は row(A2)と変化し2
INDEX(範囲,行,列)   (列省略)
2日は$C$2:$C$5 を C→Dに

 (UU)


 UUさん、
 易しい式を書いてくださったんですね。ありがとうございました。
 実際の表にも応用することが出来ました。
 将来はROUGEさんの式にステップアップしたいと思います。
 みなさん、ご指導、ご親切な書き込みをありがとうございました。

コメント:

[ 一覧(最新更新順) |

]


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