То, что вы ищете, хорошо подходит для решения VBA. В своей тестовой книге я создал две таблицы в соответствии с вашими рекомендациями.
Первый - это сводная рабочая таблица, которая будет служить формой ввода данных. Текущие производственные суммы для одного или нескольких SKU будут введены в выделенную область в столбце C, как показано на снимке экрана ниже. (Я предполагаю, что единственными другими предметами, введенными вручную, будут общие ежемесячные заказы для каждого SKU.)
Объем производства будет проводиться программным способом на подробный рабочий лист и, в свою очередь, будет суммироваться как "предыдущий выпуск" в сводной таблице первого рабочего листа.
Публикация в деталях будет инициирована с помощью кнопки на сводном рабочем листе. При нажатии этой кнопки каждая сумма в текущем производственном столбце сводного рабочего листа будет скопирована в подробный лист вместе с соответствующим SKU и текущей датой и временем. После копирования текущий производственный столбец сводной таблицы будет очищен.
Командная кнопка будет создана на вкладке «Разработчик» ленты, вставив форму кнопки в сводный лист. Затем код будет связан с кнопкой, выбрав «Режим разработки», щелкнув правой кнопкой мыши по кнопке и выбрав «Просмотреть код», и вставив код в появившуюся панель редактирования.
Поскольку этот процесс немного сложен, я сделал мою тестовую книгу доступной по этой ссылке Dropbox.
Сводная таблица
Подробный рабочий лист
Код кнопки управления
Option Explicit
Private Sub CommandButton1_Click()
Dim skuArr As Variant
Dim prodArr As Variant
Dim postRow As Long
Dim currDate As Long
Dim currTime As Double
Dim i As Long
'turn off background processes
With Excel.Application
.ScreenUpdating = False
.Calculation = Excel.xlCalculationManual
.EnableEvents = False
End With
'put SKUs and current production amounts into arrays
skuArr = Range("Summary!SKUS").Value
prodArr = Range("Summary!CurrentProd").Value
'find first empty row of detail worksheet
postRow = 1 + Worksheets("Detail").Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
'save date and time
currDate = Range("Summary!CurrentDate").Value
currTime = Range("Summary!CurrentTime").Value
With Worksheets("Detail")
'write date, time, SKU, and new prod amount to detail sheet
'cell formatting lines can be eliminated if Detail sheet is preformatted
For i = LBound(skuArr, 1) To UBound(skuArr, 1)
If Not (prodArr(i, 1) = "") Then
.Cells(postRow, 1).Value = currDate
.Cells(postRow, 1).NumberFormat = "mm/dd/yy"
.Cells(postRow, 2).Value = currTime
.Cells(postRow, 2).NumberFormat = "HH:MM"
.Cells(postRow, 3).Value = skuArr(i, 1)
.Cells(postRow, 3).HorizontalAlignment = xlCenter
.Cells(postRow, 4).Value = prodArr(i, 1)
postRow = postRow + 1
End If
Next i
End With
'Clear posted amounts from summary sheet
Range("Summary!CurrentProd").Value = ""
With Excel.Application
.ScreenUpdating = True
.Calculation = Excel.xlCalculationAutomatic
.EnableEvents = True
End With
End Sub