2016-10-29 12 views
0

12個のワークシート(1か月に1個)に含まれる未知数のエントリ(行)があります。これらの行は配信データを追跡します。私は、各シートの各行を解析すると、次の操作を行います。B. タリーへB. タリーへVBA複数のExcelワークシート(動的な行数)のコードを1ブック内で検索して比較する

タリーから配信数から個数への配送のコストB. AからBまでの総貨物重量を集計します。

これらの集計は、要約ワークシートに出力する必要があり、MonthlyとYTDの両方である必要があります。

サンプル列、および単一のデータ列は、次のようである:

Date&Time PU  | Date&Time Del |PU Loc. Name |PU Street  |PUCityStateZip  |DEL Loc. Name|DEL Street  |DELCityStateZip  |Number of Pieces|Weight  |TotalAmt 

01/01/2016 05:30 | 01/01/2016 07:30 | Warehouse A | 123 Nowhere St. | Toronto, ON P3L 3M0 | Hospital A | 321 Made-up Ave. | Stratford, ON T45 6H8 | 6    | 240 Lbs | $245.00 
02/01/2016 06:30 | 02/01/2016 07:30 | Warehouse B | 123 Lost Road | Hamilton, ON P3X 3Z0| Hospital A | 321 Made-up Ave. | Stratford, ON T4P 6H8 | 3    | 240 Lbs | $245.00 
01/01/2016 09:30 | 02/01/2016 11:30 | Warehouse A | 123 Nowhere St. | Toronto, ON P3L 3M0 | Hospital B | 123 Boul Fake. | Montreal, QC T4Y 6J8 | 1    | 24 Lbs | $45.00 
04/01/2016 05:30 | 04/01/2016 07:30 | Warehouse A | 123 Nowhere St. | Toronto, ON P3L 3M0 | Hospital A | 321 Made-up Ave. | Stratford, ON T4P 6H8 | 4    | 160 Lbs | $145.00 

Using the sample data above we would have(for total number of deliveries): 
2 Deliveries from Warehouse A to Hospital A 
1 Delivery from Warehouse B to Hospital A 
1 Delivery from Warehouse A to Hospital B 

私はどのように異なるワークシートを介してサイクルを知っ。私はまた、最後の行の最後まで、未知数の行で循環する方法も知っています。

データを並べ替え、ピックアップ場所と配達場所を比較する最良の方法がわかりません。すなわち、私は、倉庫Aが1月に7回、2月に15回、12月に10回など病院Bに届けられたと判断するためのデータを調べることができる必要があります。現時点では、これに最も近づける方法を視覚化する際の問題があるためです。

これはVBAソリューションでなければなりません。これは手作業で行うことができますが、私は「自動化された」VBAソリューションが必要です。

ご協力いただければ幸いです。

+0

もしあなたが限られた数の「場所」(例えば、倉庫/病院が100以上あることがわかっているかもしれません)があれば、各場所に番号を割り当て、 '100 、100,12) '第1の次元は「from」を表し、第2の次元は「to」を表し、第3の次元は月を表す。次に、毎月のシートを処理する際に値を配列に格納します。 – YowE3K

+0

それはいい考えです。しかし、私はしばしば頻繁になる場所を知っていますが、技術的には無制限の場所が存在する可能性があります。この方法でインデックスを作成すると、新しい場所がその月の統計情報にあるときに穴が開いてしまう可能性があります。 – WarOrdos

+0

私は配信ロケーション名の列をスキャンし、リストされた一意の名前ごとに月ごとに配列エントリを作成する必要があると考えています。それから、そのリストを反復と照合して、それに応じて増分します。それは「未知の」場所をカバーして、タリーを導くようにも見えるでしょう。しかし、私はまだこれについて最善の方法についていくらか不明瞭です。 – WarOrdos

答えて

1

次のSQL文を使用してレコードセットを開くことができます:

SELECT Year([Date&Time Del]), Month([Date&Time Del]), [PU Loc. Name], [DEL Loc. Name] 
    COUNT(*) AS CountOfDeliveries 
FROM [SheetName$] 
GROUP BY Year([Date&Time Del]), Month([Date&Time Del]), [PU Loc. Name], [DEL Loc. Name] 

CopyRecordsetを使用して出力ワークシートに結果を貼り付けます。

あなたは年によってではなく、月によってグループ化したい場合は(それは質問からかなり明確ではありません)、次のSQLステートメントを使用します。

SELECT Year([Date&Time Del]), [PU Loc. Name], [DEL Loc. Name] 
    COUNT(*) AS CountOfDeliveries 
FROM [SheetName$] 
GROUP BY Year([Date&Time Del]), [PU Loc. Name], [DEL Loc. Name] 

は似た何かのためにhereを参照してください。

+0

提案していただきありがとうございます。私は明日これを試しています。 – WarOrdos

関連する問題