[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白以外のデータを抽出する方法』(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.