みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【エクセル】 関数などを使ったデータ抽出方法について教えてください

エクセルでデータ抽出方法について教えてください

↓見づらくてすいません。
行/列|A|B|C|D|E|F
1|品番|商品分類|進捗状況|担当者|(仮)受注日|納品予定日
2|k-101|スピーカー|納品済|鈴木|2007/10/20|2007/10/31
3|t-550|コード|受注|鈴木|2007/10/21|2007/10/28
4|h-890|ジャック|受注|佐藤|2007/10/22|2007/11/02

実際のデータは列(項目)がAZまで、行は500位まであります
データが重複することがある
[品番]がない場合もある

上の表からC列の[進捗状況]ごとに別表にしたいのです。
([受注]だけの表や[納品済]だけの表がほしい)

別表の条件は
1. 「品番」「商品分類」「納品予定日」の項目だけ
(その他のデータはいらない)
2. できたらリアルタイムで更新される
(「進捗状況」を変えたら自動で別表もで更新される)

関数などで別表にできる方法があったら教えてください。
お願いします。

投稿日時 - 2007-11-09 23:02:08

QNo.3504330

すぐに回答ほしいです

質問者が選んだベストアンサー

「列(項目)がAZまで、行は500位まであ」る「実際のデータは」Sheet1 にあると仮定し、セル BA2 に式 =IF(Sheet2!B$1=C2,ROW(),"") を入力して、此れを必要なだけ下方に(500行位まで?)ズズーッと複写しておきます。(目障りなら、この列を非表示にしておけば?)

Sheet2
   A     B     C
1 進捗状況 受注
2
3 品番   商品分類 納品予定日
4 t-550   コード  2007/10/28
5 h-890   ジャック  2007/11/2
6

Sheet2 において、
1.セル B1 に次の入力規則を設定
  [入力値の種類] → リスト
  [元の値]    → 受注,納品済
2.セル A4 に次式を入力後、此れを右方にセル C4 までドラッグコピー
3.範囲 A4:C3 を必要なだけ下方に(100行でも 300行でも 500行でも)ズズーッと複写

投稿日時 - 2007-11-10 01:19:33

お礼

参考になりました。
解決することができました。
ありがとうございました。
お礼が遅くなりすいません。

投稿日時 - 2007-11-23 17:55:48

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

毎日ぐらい出る、またかという質問のタイプです。
興味があれば、Googleなどで「imogasi方式」で照会してもらえば
OKWAVEの質問例が沢山出てきます。
その中の2-3を見て適当なものをやってみてください。
その中に私の回答と、他の方の回答が出てきます。
作業列を使うので、#3のご回答のタイプですが、ちょっと違うところもあります。
ーーー
関数での希望が多いが、
別シート全体が、長い式で埋まるので、処理に影響が出るかもしれません。ですから余り良い方法ではない。
VBAなどで処理するのが望ましい。
ーーー
>できたらリアルタイムで更新される
関数で実現したら、引数セルの変更に対し即時再計算します。
わざわざ書く必要は無いのは常識。

投稿日時 - 2007-11-10 09:21:01

ANo.3です。
ステップ2の「次式」を書き漏らしていました。次式です。
=IF(ISERROR(SMALL(Sheet1!$BA:$BA,ROW(A1))),"",OFFSET(Sheet1!$A$1,SMALL(Sheet1!$BA:$BA,ROW(A1))-1,MATCH(A$3,Sheet1!$A$1:$F$1,0)-1))

投稿日時 - 2007-11-10 01:23:28

ANo.2

一番簡単なのは「オートフィルタ」ですね、たぶん。関数は使わないで済みます。(「半手動」ですが、ご希望の表はできると思います。)

http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm

又は、C列をキーにしてソート(並べ替え)して、項目が変わる行で改ページするという方法もあると思います。こちらも関数は不要ですね。

投稿日時 - 2007-11-09 23:35:18

お礼

オートフィルタではなくやりたかったので・・・

投稿日時 - 2007-11-23 17:51:23

ANo.1

思いつきで解答します、もっといい方法があるかもしれませんが、

行/列|A|B|C|D|E|F・・・・・・・・・・・・・・・・・・AA/AB
1|品番|商品分類|進捗状況|担当者|(仮)受注日|納品予定日・・
2|k-101|スピーカー|納品済|鈴木|2007/10/20|2007/10/31・・=if(C2="受注",row(),"")/=if(C2="納品済",row(),"")
のようにどこかに計算式を入れます。
そうするとC2の値が一致するものだけの行番号がセルに入ります。

別シートで
元シートのAAに受注をセットしたとしてその一覧を作ると
行/列|A|B|C|D|E|F
1/連番/元行/品番/商品分類/納品予定日
2/1/=SMALL(sheet1!AA$2:AA$500,A2)/=INDIRECT("sheet!A"&B2)/=INDIRECT("sheet1!C"&B2)/=INDIRECT("sheet1!D"&B2)
3/2/=SMALL(sheet1!AA$2:AA$500,A3)/=INDIRECT("sheet1!A"&B3)/=INDIRECT("sheet1!C"&B3)/=INDIRECT("sheet1!D"&B3)
のようにすればできると思います。
エラー処理等まったくしていませんのでそのあたりを作らなければなりませんが。

投稿日時 - 2007-11-09 23:34:40

お礼

エラーが解決できれば良かったのですが、参考になりました。
ありがとうございました。
お礼が遅くなりすいません。

投稿日時 - 2007-11-23 17:49:33

あなたにオススメの質問