
Windows 10 Excel 2019
У меня есть рабочая книга с двумя рабочими листами, Product Data и Product List. Данные в Product List генерируются каждый раз, когда запускается формула, которую я ищу.
Количество продуктов неизвестно/неограничено.
Количество строк для каждого продукта неизвестно/неограничено.
Каждый рабочий лист имеет строку заголовка.
На странице «Данные о продукте»...
Столбцы A, B, J, K будут иметь дублирующиеся даты, которые следует использовать для идентификации строк, относящихся к каждому продукту.
Столбцы G и H также относятся к каждому продукту, но будут содержать смесь значений и не будут использоваться для идентификации продуктов.
Для каждого продукта (определенного путем сопоставления данных в столбцах A, B, J, K листа «Список продуктов») мне нужно, чтобы Excel просмотрел столбец G и возвратил число, которое встречается чаще всего в каждом совпадающем наборе данных, возможно, '=MODE.SNGL(G2:G) до конца совпадений.
Нужный мне код/формула будет выполнять следующие действия.
После обработки первого набора сопоставленных значений (желтый цвет) он переходит к обработке следующего сопоставленного набора (зеленый цвет), затем следующего (синий цвет) и так далее по всему списку продуктов и копирует его на страницу списка продуктов (пример ниже).
У меня есть следующий код VBA, который извлекает данные из рабочего листа «Даты продуктов», но я не могу понять, как вставить «=MODE.SNGL(G2:G)» или что-то подобное в код диапазона столбца G, чтобы он зацикливался и начинался заново для каждого соответствующего набора данных.
' Начиная с ячейки A2 до ячейки G2 и вниз до строки 40 000, вставляется формула для ' извлечения данных из рабочего листа "Track Data2
Range("A2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISBLANK('Track Data'!RC), """",IF(OR('Track Data'!RC[8]=""Wav"",'Track Data'!RC[8]=""Flac"",'Track Data'!RC[8]=""Mp3"",'Track Data'!RC[8]=""Aif"",'Track Data'!RC[8]=""OSX AU""),'Track Data'!RC,""""))"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]="""","""",'Track Data'!RC)"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""","""",'Track Data'!RC[8])"
Range("D2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-3]="""","""",'Track Data'!RC)"
Range("E2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-4]="""","""",'Track Data'!RC[2])"
Range("F2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-5]="""","""",'Track Data'!RC[])"
Range("G2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-6]="""","""",'Track Data'!RC[2])"
Range("A2:G2").Select
Selection.AutoFill Destination:=Range("A2:G40000"), Type:=xlFillDefault
Range("A2:G40000").Select
Application.GoTo Reference:="R2C1"
Пример рабочего листа «Данные о продуктах».
PRODUCT TYPE DATA 1 DATA 2 DATA 3 DATA 4 NO 1 N0 2 DATA 5 PRICE PACK TYPE
Red Paint Powder Data 1 Data 2 Data 3 Data 4 12 1058 Data 5 22.99 Tin
Red Paint Powder Data 1 Data 2 Data 3 Data 4 12 1058 Data 5 22.99 Tin
Red Paint Powder Data 1 Data 2 Data 3 Data 4 12 1058 Data 5 22.99 Tin
Red Paint Powder Data 1 Data 2 Data 3 Data 4 4 1058 Data 5 22.99 Tin
Red Paint Powder Data 1 Data 2 Data 3 Data 4 4 652 Data 5 22.99 Tin
Red Paint Powder Data 1 Data 2 Data 3 Data 4 2 331 Data 5 22.99 Tin
Red Paint Powder Data 1 Data 2 Data 3 Data 4 12 2012 Data 5 22.99 Tin
Red Paint Powder Data 1 Data 2 Data 3 Data 4 12 1058 Data 5 22.99 Tin
Red Paint Powder Data 1 Data 2 Data 3 Data 4 12 1058 Data 5 22.99 Tin
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 300 442 Data 5 9.89 Tube
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 43 442 Data 5 9.89 Tube
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 300 442 Data 5 9.89 Tube
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 21 5678 Data 5 9.89 Tube
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 14 442 Data 5 9.89 Tube
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 62 789 Data 5 9.89 Tube
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 300 442 Data 5 9.89 Tube
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 300 1233 Data 5 9.89 Tube
Yellow Paint Oil Data 1 Data 2 Data 3 Data 4 300 442 Data 5 9.89 Tube
Black Paint Powder Data 1 Data 2 Data 3 Data 4 1 3 Data 5 6.28 Tin
Black Paint Powder Data 1 Data 2 Data 3 Data 4 1 45 Data 5 6.28 Tin
Black Paint Powder Data 1 Data 2 Data 3 Data 4 2 20 Data 5 6.28 Tin
Black Paint Powder Data 1 Data 2 Data 3 Data 4 3 3 Data 5 6.28 Tin
Black Paint Powder Data 1 Data 2 Data 3 Data 4 3 8 Data 5 6.28 Tin
Black Paint Powder Data 1 Data 2 Data 3 Data 4 6 3 Data 5 6.28 Tin
Black Paint Powder Data 1 Data 2 Data 3 Data 4 1 3 Data 5 6.28 Tin
Пример того, как будет выглядеть страница списка товаров.
PRODUCT TYPE DATA 1 DATA 2 DATA 3 DATA 4 M. DUPS No 2 DATA 5 PRICE PACK TYPE
Red Paint Powder Data 1 Data 2 Data 3 Data 4 12 1058 Data 5 22.99 Tin
Yellow PaintOil Data 1 Data 2 Data 3 Data 4 300 442 Data 5 9.89 Tube
Black Paint Powder Data 1 Data 2 Data 3 Data 4 1 3 Data 5 6.28 Tin