【目的】エクセル関数を使用して、複数シートを対象に商品名によってデータを振り分けしたいです。
複数シートに検索対象を広げる事が出来ずにとても困っています。お力を貸してください。
過去に商品データの振り分け質問がありましたので、そちらを参考に作成させていただきました。
http://oshiete.goo.ne.jp/qa/7843035.html
上記URLの質問では一つのシートに対し、商品データの振り分けをされる形でしたが、
これを複数シートを対象に商品データの振り分けがしたいのです。
IFを複数使用し、複数シートを指定してもエラーでうまく動きません。
=IF($A3="","",VLOOKUP($A3,Sheet1!$A:$D,MATCH(B$2,Sheet1!$A$1:$D$1,0),FALSE))
&IF($A3="","",VLOOKUP($A3,Sheet2!$A:$D,MATCH(B$2,Sheet2!$A$1:$D$1,0),FALSE))
何かよい方法はありませんでしょうか?
何卒よろしくお願い致します。m(_ _)m
No.1ベストアンサー
- 回答日時:
無理に複数のシート状のデータを直接振り分け様とするのではなく、複数のシート状にあるデータを、一旦、1枚のシート上に纏めてしまってから、その全てのデータが纏められているシートに対して、質問者様が御質問文で挙げておられる過去の質問の方法を適用されれば良い訳です。
今仮に、Sheet1、Sheet2、Sheet3の3枚のシートの各々において、A列には商品名が、B列には商品コードが、C列には金額が、それぞれ入力されていて、それら3枚のシートの何れも1行目には「商品名」等の項目名が入力されていて、実際のデータは2行目以下に並んでいるものとします。
又、B列に入力されている商品コードは、Sheet1~Sheet3を通して同じものが複数の箇所に入力されている事は無い(例えば、Sheet1のB2に入力されている商品コードは、Sheet1のB3以下に同じものが入力されている事が無いのは無論の事、Sheet2やSheet3の中にも同じコードが入力されている事は無い)ものとします。
まず、未使用のシートを1枚用意して、そのシートのシート名を例えば「作業用」(鉤括弧は不要)と設定して下さい。
次に、作業用シートの
A1セルに 商品名
B1セルに 商品コード
C1セルに 金額
F1セルに シート名
G1セルに 1
と入力して下さい。
次に、作業用シートのG2セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/COUNTIF(INDIRECT("'"&INDEX($F:$F,ROW())&"'!A:A"),"商品名")),MATCH("*?",INDIRECT("'"&INDEX($F:$F,ROW())&"'!A:A"),-1)-MATCH("商品名",INDIRECT("'"&INDEX($F:$F,ROW())&"'!A:A"),0),"")
次に、作業用シートのE2セルに次の関数を入力して下さい。
=IF((0&$G1)+0>0,SUM($G$1:$G1),"")
次に、作業用シートのE2~G2の範囲をコピーして、同じ列の3行目以下に、元データの枚数文と同じ行数だけ貼り付けて下さい。(将来的に元データのシートの枚数が増える事もあり得る場合には、貼り付ける行をもっと多くしておいても構いません)
次に、作業用シートのH1セルに次の関数を入力して下さい。
=SUM($G:$G)-1
次に、作業用シートのA2セルに次の関数を入力して下さい。
=IF(ROWS($2:2)>$H$1,"",IF(INDEX(INDIRECT("'"&VLOOKUP(ROWS($2:2),$E:$F,2)&"'!A:C"),MATCH("商品名",INDIRECT("'"&VLOOKUP(ROWS($2:2),$E:$F,2)&"'!A:A"),0)+ROWS($2:2)-LOOKUP(ROWS($2:2),$E:$E)+1,COLUMNS($A:A))="","",INDEX(INDIRECT("'"&VLOOKUP(ROWS($2:2),$E:$F,2)&"'!A:C"),MATCH("商品名",INDIRECT("'"&VLOOKUP(ROWS($2:2),$E:$F,2)&"'!A:A"),0)+ROWS($2:2)-LOOKUP(ROWS($2:2),$E:$E)+1,COLUMNS($A:A))))
次に、作業用シートのA2セルをコピーして、作業用シートのB2~C2の範囲に貼り付けて下さい。
次に、作業用シートのA2~C2の範囲をコピーして、同じ列の3行目以下に(全てのデータを表示させるのに十分な行数になる様に)貼り付けて下さい。
次に、作業用シートの
F2セルに Sheet1
F3セルに Sheet2
F4セルに Sheet3
という具合に、元データが入力されている各シートのシート名を入力して下さい。
これで作業用シートのA列~C列に全てのデータが纏めて表示されますから、後は質問者様が参考にしておられる「エクセルで商品を振り分ける方法ありますか?」という質問に対する回答に書かれている方法の、「Sheet1」という箇所を全て(関数の中のものも含めて)「作業用」に置き換えるだけで、商品データの振り分けを行う事が出来る筈です。
今回参考にさせていただいた方から再度回答を頂けるとは思ってもいませんでした。
本当にご丁寧にありがとうございます。
やはり考え方の問題なのだということがはっきりとわかりました。
現在既にデータがぎっしりと入っている複数シートの管理表を渡され、既存のデータをさらに
複数カテゴリに分けてほしいとの依頼があり、今回の質問に至りました。
さっそく実行させていただいた結果、しっかりと動作確認と考え方を把握させていただきました。
これだけのサンプル・方法があれば、後は応用してできると思います。
最後に本当にご丁寧にありがとうございました。m(_ _)mm(_ _)mm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excel 関数 vlookupなどの使い方について質問です。 シート1に品番、商品名、単価、発注条 6 2022/06/15 19:16
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Excel(エクセル) エクセル 指定セル繰り返しマクロ 4 2022/06/06 17:08
- Excel(エクセル) エクセルVBA VLOOKUPを使ってのカウント作業 2 2023/02/19 09:03
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報