実現したいこと
100種類以上ある料理レシピからドロップダウンリストで名前を選ぶだけで、他ファイルに記載されている
【材料】【数量】【単位】を転記させたい。
発生している問題・分からないこと
フォルダー内のファイル名をリスト化することは出来ております。
料理毎の項目数が異なりどうやってvlookupで抽出させれば良いのか悩んでおります。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
リスト化等の方法は記載されているのですが、別ファイルへのアクセスや項目数が異なる場合の対処が理解出来ませんでした。
補足
特になし
> 項目数が異なる場合の対処が理解出来ませんでした。
「項目数が異なる」とは具体的にはどういうことでしょうか?
とりあえず、使用される Excel のバージョンを明記されることをお奨めします。
バージョンによって使用できる/できないワークシート関数などに違いがありますので。
> 100種類以上ある料理レシピからドロップダウンリストで名前を選ぶだけで、
> 他ファイルに記載されている【材料】【数量】【単位】を転記させたい。
・個々の材料表はどのファイルにどのような形で記録されているのか。
> フォルダー内のファイル名をリスト化することは出来ております。
・何のために「ファイル名をリスト化する」作業/処理を行ったのか。
・リスト化された表は具体的にどのようなレイアウトになっているのか。
> リスト化等の方法は記載されているのですが、別ファイルへの
> アクセスや項目数が異なる場合の対処が理解出来ませんでした。
・ここでの「別ファイル」が上記における「フォルダー内のファイル」を
指しているとして、何のためにそれらのファイルにアクセスするのか。
・仮にそれらのファイルの形式が Excel ブック( .xlsx ファイル)であるとして、
例えば 1 つの Excel ブックにつき 1 つの料理の材料表が、
そのブックのある 1 つのワークシート上に記録されている、ということか。
また、そのワークシートの名前は全てのブックにおいて同じなのか、
それともブックによって異なる名前がつけられているのか。
うーん、これはいわゆる「関数の限界」を迎えているでしょうね。
エクセル関数でやってできない事はないでしょうが、相当骨が折れるし、エラーや動作の不良が起きる事は必至です。
VBAが使えるのであれば一瞬で解決する事案ですので一度考えてみてはいかがでしょうか。
VBAなら基礎中の基礎の内容なのでそこまで学習時間は必要ないと思いますが。
>meg_
例えば【カレーに使う材料の数】と【ミートソーススパゲティに使う材料の数】
のように材料の項目数が異なる事を指していました。
どうやって範囲指定すれば良いのか?と悩んでました。
>sk.exe
情報不足失礼しました。Excel2021です。
各料理のレシピはExcel内に表(材料名、量、単位)として記録されています。
つまり料理の数=ファイルの数です。
シート名は全てデフォルトのsheet1です。
ファイル名のリスト化はファイルの呼び出しに必要かなと思い、作業しました。
リスト化された表は単純にファイル名の羅列です。
>Black_Velvet
VBAですよね。
久しく触っていなかったので、逃げ出しておりました。
思い出しながらVBAへの変更も考えてみたいと思います。
> 各料理のレシピはExcel内に表(材料名、量、単位)として記録されています。
> つまり料理の数=ファイルの数です。
> シート名は全てデフォルトのsheet1です。
全てのブックの[Sheet1]上の表のレイアウトが統一されているのであれば、
それらの表のデータを統合して「全ての料理の材料を網羅した表」を
作成された方が無難だと思います。
つまり[料理名]、[材料名]、[分量]、[単位]の4項目で構成された表を
1つのブックの1つのワークシート上に作成すればよい、ということです。
ご説明していただいたような状況であれば、Excel 2021 の Power Queryを
使用すれば容易にデータ統合を行うことが出来ます。
> 例えば【カレーに使う材料の数】と【ミートソーススパゲティに使う材料の数】のように材料の項目数が異なる事を指していました。
材料の数もファイルに書き込んでおけば良いのでは?またはカウント関数などで数えれば良いのではないでしょうか?