У меня есть действительно плохо отформатированные данные, с которыми мне приходится работать каждую неделю.Вот пример:
Code: To: Total: Description:
-------------------------------------------------------------
FD987 00001 5 Food/Snack/M&M<br>
FD987 00001 5 Food/Snack/Pretzels<br>
NA654 00001 5 Non-Alc/Soda/Sprite<br>
NA654 00002 2 Non-Alc/Soda/Sprite<br>
NA987 00002 2 Non-Alc/Soda/Lemonde<br>
Я хочу, чтобы данные в конечном итоге сортировались по коду «Кому», а различные данные суммировались для промежуточных итогов в каждой категории и промежуточных итогов для всей записи «Кому».Вот так:
To: Total: Description:
---------------------------------------------------
00001 10 Food Subtotal<br>
00001 5 Non-Alc Subtotal<br>
00001 15 Grand total<br>
00002 0 Food Subtotal<br>
00002 4 Non-Alc Subtotal<br>
00002 4 Grand total
Я написал код, который получает "00001" и "00002".Но я не знаю, что делать оттуда.Должен ли я пройти через использование комбинации если и для?
пример:
pseudo code:
for all i in UniqueToCodes
if (cell.value = i) then
Descriptions = {"Food", "Non-Alc"}
tempsum = 0
for all j in Descriptions
q = total for item j belonging to Descriptions belonging to UniqueToCodes
tempSum = tempSum + q
next j
end if
next i
или цикличность в обратном направлении будет более эффективной?
например, как это:
pseudo-code:
for i = lastOccurenceOf(ToCode) to firstOccurenceOf(ToCode) -1
Descriptions = {"Food", "Non-Alc"}
for all j in Descriptions
q = total for item j belonging to Descriptions belonging to UniqueToCodes
tempSum = tempSum + q
next j
next i
(я знаю, что коды «Кому» всегда отображаются в виде блоков и никогда не с междометиями других кодов, то есть всегда так:
00001
00001
00002
никогда так:
00001
00001
00003
00001
)
и как мне хранить все эти временные суммы?то есть tempSum для "Food" и tempSum для "Non-Alc" для "To" с кодом "00001"?Я знаю, что объекты словаря сопоставляют только одно свойство с ключом.Но мне нужно сопоставить промежуточный итог с описанием и итоговой суммой с кодом «Кому».Что бы вы сказали, это лучший подход к этой проблеме?Любая помощь будет принята с благодарностью!Спасибо!