• 締切済み

Excelで入力したデータの確認を取りたいです。

複数のシート(入力1・2シート)に入力した所だけの「品名」と「単位」と「数量」を出力1シートに出したいです。C列の入力が終わると次はD列に行きます・・・。そして次はE列です。(右にズレていきます) 入力シート1↓ A列     B列    C列    D列 品名    単位    ミヤモト      キャベツ  玉      3 もやし   kg     0.5 きゅうり  本   大根    本  入力シート2↓ A列     B列    C列    D列 トマト   個      3 えのき   P         出力シート1↓(C列に入力した場合) キャベツ  玉      3 もやし   kg     0.5 トマト   個      3 このように出力をしたいです。 C列の入力が終わるとD列も同じように入力します。その繰り返しです。 入力したデータを確認するためにこの仕方を知りたいです。 バージョンはExcel2007です。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート1およびシート2を入力用のシートとしてA1セルには品名、B1セルには単位、C1セルには数量の文字がそれぞれあり、各データは2行目から下方に入力されるとします。 各シートでは仮にG列まで利用されるとしたらH列には作業列を設けます。 シート1のH2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(C2<>"",MAX(H$1:H1)+1,"") シート2のH2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(C2<>"",MAX(Sheet1!H:H)+COUNT(H$1:H1)+1,"") その後に出力のシートですが1行目には項目名があるとしてA2セルには次の式を入力してG2セルまで右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)<=MAX(Sheet1!$H:$H),INDEX(Sheet1!$A:$G,MATCH(ROW(A1),Sheet1!$H:$H,0),COLUMN(A1)),IF(ROW(A1)<=MAX(Sheet2!$H:$H),INDEX(Sheet2!$A:$G,MATCH(ROW(A1),Sheet2!$H:$H,0),COLUMN(A1)),"")) これで数量のない部分は0の表示となりますので、0を表示させないのでしたら次の操作を行います。 データが表示されるセル範囲を選択したのちに右クリックして「セルの書式設定」から「表示形式」の「ユーザー定義」で種類の窓には 0;-0;;@ を入力しOKします。

syugo14
質問者

お礼

ありがとうございます

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1およびシート2を入力用のシートとしてA1セルには品名、B1セルには単位、C1セルには数量の文字がそれぞれあり、各データは2行目から下方に入力されるとします。 各シートでは仮にG列まで利用されるとしたらH列には作業列を設けます。 シート1のH2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(C2<>"",MAX(H$1:H1)+1,"") シート2のH2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(C2<>"",MAX(Sheet1!H:H)+COUNT(H$1:H1)+1,"") その後に出力のシートですが1行目には項目名があるとしてA2セルには次の式を入力してG2セルまで右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)<=MAX(Sheet1!$H:$H),INDEX(Sheet1!$A:$G,MATCH(ROW(A1),Sheet1!$H:$H,0),COLUMN(A1)),IF(ROW(A1)<=MAX(Sheet2!$H:$H),INDEX(Sheet2!$A:$G,MATCH(ROW(A1),Sheet2!$H:$H,0),COLUMN(A1)),"")) これで数量のない部分は0の表示となりますので、0を表示させないのでしたら次の操作を行います。 データが表示されるセル範囲を選択したのちに右クリックして「セルの書式設定」から「表示形式」の「ユーザー定義」で種類の窓には 0;-0;;@ を入力しOKします。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

答えとして,前回のご質問とやり方は特に何も代わり有りません。 前回教わったフィルタオプションの設定を使う方法で出来ますし,あるいは関数の方がやっぱり良かったのであってもやり方は一緒です。再度前回の皆さんの回答を見直して,行ってみましょう。 ただ敢えて今回のご質問で不鮮明な点を指摘するなら, >C列の入力が終わると次はD列に行きます・・・。そして次はE列です。 抽出したいのは? 1.前回まで(CD列)は無視して最新の(E列の)データが入った行 2.CDE列の「どれか一つでも」データが入った行 3.CDE列に「漏れなく3つ」データが入った行(1つでも空白抜けがあったら抽出しない) 参考:1番で行えば,2番を行う必要はありません。E列が入った時点でCD列は既に1の手順でチェック済みだからです。 その1番で行うなら,前回のご相談内容と全く同じになります。 また3で行いたいなら,ホームタブの並べ替えとフィルタから「フィルタ」(オートフィルタ)を取り付けて,3列とも「空白ではない」で絞ってコピーした方が簡単です。 でも折角だからフィルタオプションの設定で行ってみたいなら,2番も3番も検索条件の与え方をちょっと違えてどちらも出来ます。

syugo14
質問者

お礼

ありがとうございます

関連するQ&A