1

私は、機械装置とそれらを組み立てるために必要な部品の膨大なリストを作成してきました。基本的に私が持っているのは3つのワークシートです。
1つはすべての注文可能な部品(ネジ、ナット、ボルトなど)とその注文数量、
1つのワークシートには特定のデバイスを構築するために必要な部品の量と種類(ウィジェットには3つのネジ、0のナット、4つのボルトが必要)
、1つの要約シートが含まれていますここで、構築するデバイスを入力することになっています。

各パーツは単一の数量ではなく、より大きなパッケージ(たとえば、500ネジ、100ボルトなど)で注文できるため、「構築する」シートを読み、すべてのガジェットを検索し、必要なそれぞれの部品と、必要な各部品のボックスの数のリストを作成します。

どういうわけかvlookupを介してそれを実行しようとしましたが、クエリが頭を悩ませ、VBAに不慣れです。私が見落としている簡単な解決策はありますか?どうもありがとうございます。

編集

以下のサンプルデータ:

これはデバイスのレシピリストです

デバイス名パート1金額1パート2金額2パート3金額3価格
ガジェットネジ20ナット40ボルト126,14€
ウィジェットネジ10ボルト12ワッシャー1002,02€
シンジーナッツ11ワッシャー122ボルト142,93€

これはパーツリストと注文サイズです

部品注文サイズ価格単位あたりの価格
ネジ50020€0,040€
ナッツ10012€0,120€
ボルト2009€0,045€
ワッシャー100010€0,010€

これはデバイスの注文リストです

アイテム金額
ガジェット14
ウィジェット22
シンジー121

そして今、私は次のようなテーブル(またはレポート、テキストファイル、またはあらゆる種類の要約された出力)を作成したいと思います。

これらの数字は現在構成されています

注文する部品パッケージの数量価格
ネジ120€
ナッツ336€
ボルト218€
ワッシャー550€

vlookups内でvlookupsをいじってみたところ、頭痛の種しかなかったので、共有するのに役立つコードはありません...

4

1 に答える 1

2

最初に、注文リストに列を追加して中間ステップを作成します (これは、スペース区切りで Excel にうまく貼り付けられます。ここで書式設定について申し訳ありません)。タブの書式設定を変更することを検討したい場合がありRecipeますが、私はあなたが持っているものを使用しました):

Item    Amount  Screws  Bolts   Nuts    Washers
Gadget  14  280 168 560 0
Widget  22  220 264 0   2200
Thingie 121 0   1694    1331    14762

次に、「ねじ」の下の式に次の式を使用し、上下にドラッグします。

   =$B2*(SUMIFS(recipe!$C:$C,recipe!$B:$B,order!C$1,recipe!$A:$A,order!$A2)+SUMIFS(recipe!$E:$E,recipe!$D:$D,order!C$1,recipe!$A:$A,order!$A2)+SUMIFS(recipe!$G:$G,recipe!$F:$F,order!C$1,recipe!$A:$A,order!$A2))

これSUMIFSは、レシピ リストの Item と PartType に基づいて a を計算します。タブで確認する必要がある部品の列が 3 つあるため、Recipe基本的に同じ式を 3 回繰り返す必要があります。これにこれらのパーツの総数を掛けると、各アイテムの各基本パーツの総数が得られます。各 Item/basicPart に独自の行エントリがある場合、式テキストは 1/3 になります。

Item計算された各基本部品の合計数量がReport得られたので、パッケージの数量を求める式を作成する必要があります。total # requiredこれをより明確にするために、中間列を追加しました。

Parts to be ordered total # required    Amount of packages  Price
Screws  500 1   20 €
Nuts    1891    19  228 €
Bolts   2126    11  99 €
Washers 16962   17  170 €

各部分の合計数を合計するに=sum(order!C:C)は、それぞれの列に基づいて適切な数式を手動で設定するか、次の数式を使用します。

=SUM(OFFSET(order!B:B,0,MATCH(A2,order!$C$1:$F$1,FALSE)))

これにより、上で作成した注文タブで一致する列が見つかり、合計されます。複雑さを軽減するために、これをハードコーディングできます。ただし、これをセル Reports!B2 に追加し、下にドラッグします。

最後に、次の式を使用してAmount of Packages(Reports!C2 に入力)を取得します。

=ROUNDUP(B2/VLOOKUP(A2,ordersize!A:B,2,FALSE),0)

次に、総費用を取得します (Reports!D2 に入力):

=C2*VLOOKUP(A2,ordersize!A:C,3,FALSE)

使用したシート名に基づいて、いくつかの数式を変更する必要がある場合があります。


ピボット テーブルが必要なすべての出力を最小限の Excel 式で提供するように、このデータを再構築できる可能性があることは注目に値すると思います。したがって、"簡単な解決策" は、ピボット テーブルがどのように機能するかを学び、情報を再構成する最善の方法 (および変更可能な要素) を決定し、より複雑な Excel 数式の作業を回避できるようにすることです。

于 2012-08-22T00:52:50.963 に答える