RENIK2095
Дата: Понедельник, 12.08.2019, 09:31 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Всем добрый день! Имеется код на PHP, который берет данные из массива с Объемами, фактическими данными по удельному показателю и показателю Итого (во вложенном файле строки 3-9 для объемов, 13-18 для удельного показателя и 24 для Итого) Фактические данные выделены серым цветом (прогнозируемые персиковым), номера столбцов равны месяцам Задача скрипта "спрогнозировать" все значения удельных показателей так, чтобы по каждому столбцу (каждому месяцу) в строке 22 получилось значение равное соответствующему в строке 24 Здесь всплывают два огромных минуса: 1. я Полнейший нуль в VBA (мой максимум сейчас - вызвать окно с выбором файла, чтобы из него забрать данные фиксированными диапазонами) 2. Необходимо на VBA сделать массивы диапазонами - чтобы не вручную забивать цифры каждый раз, а обьявить диапазоны, т..к. кол-во фактических месяцев с каждым разом будет увеличиваться, а количество прогнозируемых месяцев - уменьшаться. Полученные значения получается должны быть в диапазоне H13:O18 Просто буду очень благодарен Вам за помощь в этом вопросе Тыкался сам, но было безуспешно, хотя вроде и сам код на php не сложный... Ниже код на PHP: <?php $array = [ [], [0.001983722892 , 0.002454802907 , 0.00240168363199999 , 0.002467132712 , 0.002318982636 , 0.00289868783716531 , 0.00266427644875827 , 0.00309161722020992 , 0.00295969479826555 , 0.0029055918587179 , 0.002636811547867 , 0.00268997774783406 ], [0.00724825848399998 , 0.00767729885199999 , 0.00781564347599998 , 0.009902330324 , 0.00702216096799998 , 0.0101514558495804 , 0.0102390578623509 , 0.0102911933058265 , 0.010084993875727 , 0.010337726019505 , 0.0101310239444554 , 0.00981733156198514 ], [0.00829330708 , 0.010518815584 , 0.01135630304 , 0.01044247092 , 0.0116344271599999 , 0.0111830198464008 , 0.0156543779393486 , 0.0161094203920863 , 0.0124555861117583 , 0.0105512408376105 , 0.0113801937280126 , 0.0111593395377656 ], [0.0477632229999999 , 0.0473264259999999 , 0.052659839 , 0.047960513 , 0.046587912 , 0.04254796 , 0.0461566 , 0.04664811 , 0.04870762 , 0.05161065 , 0.04875199 , 0.05312238 ], [0.016599231 , 0.01595188 , 0.018253745 , 0.018364136 , 0 , 0.01690439 , 0.01596446 , 0.016271 , 0.01728973 , 0.01748884 , 0.01750557 , 0.0172207 ], [0.000797128 , 0.000702861 , 0.00077185 , 0.000839495 , 0 , 0.00085973 , 0.00089968 , 0.00085978 , 0.00085968 , 0.00085973 , 0.00088971 , 0.00085973 ], [21651.7102335593 , 24048.0979932668 , 26776.6366771995 , 26042.4752280744 , 23823.2040867541 , 22849.3121186933 , 22506.4979243501 , 21882.3180625424 , 22698.455464869 , 22385.9088254069 , 21395.5754917414 , 23286.1044387001 ], [10023.3407742672 , 9810.70237749304 , 13695.3669105461 , 11709.4037808432 , 12670.387761297 , 11336.1130562309 , 11255.0902986016 , 11245.2479010438 , 11330.7223452953 , 11316.6814204756 , 11531.0114816262 , 11363.8971862874 ], [14850.2502747518 , 14013.0089236443 , 14908.0185624173 , 15479.9520440869 , 12460.8390947777 , 12834.219888273 , 13089.480613167 , 13037.064018601 , 11948.2716042775 , 12042.3379341792 , 13395.8790882667 , 13201.6136821955 ], [4244.43545620824 , 5847.43095381979 , 7593.09911010074 , 7535.67515496508 , 6383.34376594431 , 8351.47309243289 , 8191.19134394005 , 7977.76843779789 , 8045.50690153637 , 7980.96509329677 , 7976.09854055607 , 7977.82030450603 ], [6009.23019642513 , 5852.56058290906 , 5344.35059220983 , 5766.34922863346 , 0 , 4867.80541056062 , 4729.92679211164 , 4952.96065933955 , 4727.85004233156 , 4831.79248876202 , 4821.54637812867 , 4898.38597658079 ], [30543.5825851687 , 30705.2386901435 , 36794.0500661266 , 41181.4563938447 , 0 , 34177.2781407906 , 36997.8676254846 , 34176.4213183271 , 33461.4980694385 , 34180.0378477241 , 37135.8254783279 , 34181.5026744768 ] ]; $total = [565.584106055305 , 673.432158814844 , 866.452368687518 , 843.730070161957 , 710.749187131998 , 791.845065563979 , 866.987240732125 , 875.519962266143 , 832.660416121803 , 834.885519979762 , 831.979462340642 , 859.064839282888 ]; for ($j = 4; $j <= 11; $j++) { $all = 0; for ($i = 7; $i <= 12; $i++) { $sum = 0; for ($y = 0; $y < $j; $y++) { $sum += $array[$i][$y]; } $x = rand(-10,10); $array[$i][$j] = $sum / $y * (1 - $x/100); $all += $array[$i][$j] * $array[$i-6][$j]; } $all -= $array[10][$j] * $array[4][$j]; $array[10][$j] = ($total[$j] - $all) / $array[4][$j]; } echo "<table>"; for ($i = 1; $i <= 12; $i++) { echo "<tr>"; for ($j = 0; $j <= 11; $j++) { echo "<td>".$array[$i][$j]."</td>"; } echo "</tr>"; } echo "</table>"; ?>
Всем добрый день! Имеется код на PHP, который берет данные из массива с Объемами, фактическими данными по удельному показателю и показателю Итого (во вложенном файле строки 3-9 для объемов, 13-18 для удельного показателя и 24 для Итого) Фактические данные выделены серым цветом (прогнозируемые персиковым), номера столбцов равны месяцам Задача скрипта "спрогнозировать" все значения удельных показателей так, чтобы по каждому столбцу (каждому месяцу) в строке 22 получилось значение равное соответствующему в строке 24 Здесь всплывают два огромных минуса: 1. я Полнейший нуль в VBA (мой максимум сейчас - вызвать окно с выбором файла, чтобы из него забрать данные фиксированными диапазонами) 2. Необходимо на VBA сделать массивы диапазонами - чтобы не вручную забивать цифры каждый раз, а обьявить диапазоны, т..к. кол-во фактических месяцев с каждым разом будет увеличиваться, а количество прогнозируемых месяцев - уменьшаться. Полученные значения получается должны быть в диапазоне H13:O18 Просто буду очень благодарен Вам за помощь в этом вопросе Тыкался сам, но было безуспешно, хотя вроде и сам код на php не сложный... Ниже код на PHP: <?php $array = [ [], [0.001983722892 , 0.002454802907 , 0.00240168363199999 , 0.002467132712 , 0.002318982636 , 0.00289868783716531 , 0.00266427644875827 , 0.00309161722020992 , 0.00295969479826555 , 0.0029055918587179 , 0.002636811547867 , 0.00268997774783406 ], [0.00724825848399998 , 0.00767729885199999 , 0.00781564347599998 , 0.009902330324 , 0.00702216096799998 , 0.0101514558495804 , 0.0102390578623509 , 0.0102911933058265 , 0.010084993875727 , 0.010337726019505 , 0.0101310239444554 , 0.00981733156198514 ], [0.00829330708 , 0.010518815584 , 0.01135630304 , 0.01044247092 , 0.0116344271599999 , 0.0111830198464008 , 0.0156543779393486 , 0.0161094203920863 , 0.0124555861117583 , 0.0105512408376105 , 0.0113801937280126 , 0.0111593395377656 ], [0.0477632229999999 , 0.0473264259999999 , 0.052659839 , 0.047960513 , 0.046587912 , 0.04254796 , 0.0461566 , 0.04664811 , 0.04870762 , 0.05161065 , 0.04875199 , 0.05312238 ], [0.016599231 , 0.01595188 , 0.018253745 , 0.018364136 , 0 , 0.01690439 , 0.01596446 , 0.016271 , 0.01728973 , 0.01748884 , 0.01750557 , 0.0172207 ], [0.000797128 , 0.000702861 , 0.00077185 , 0.000839495 , 0 , 0.00085973 , 0.00089968 , 0.00085978 , 0.00085968 , 0.00085973 , 0.00088971 , 0.00085973 ], [21651.7102335593 , 24048.0979932668 , 26776.6366771995 , 26042.4752280744 , 23823.2040867541 , 22849.3121186933 , 22506.4979243501 , 21882.3180625424 , 22698.455464869 , 22385.9088254069 , 21395.5754917414 , 23286.1044387001 ], [10023.3407742672 , 9810.70237749304 , 13695.3669105461 , 11709.4037808432 , 12670.387761297 , 11336.1130562309 , 11255.0902986016 , 11245.2479010438 , 11330.7223452953 , 11316.6814204756 , 11531.0114816262 , 11363.8971862874 ], [14850.2502747518 , 14013.0089236443 , 14908.0185624173 , 15479.9520440869 , 12460.8390947777 , 12834.219888273 , 13089.480613167 , 13037.064018601 , 11948.2716042775 , 12042.3379341792 , 13395.8790882667 , 13201.6136821955 ], [4244.43545620824 , 5847.43095381979 , 7593.09911010074 , 7535.67515496508 , 6383.34376594431 , 8351.47309243289 , 8191.19134394005 , 7977.76843779789 , 8045.50690153637 , 7980.96509329677 , 7976.09854055607 , 7977.82030450603 ], [6009.23019642513 , 5852.56058290906 , 5344.35059220983 , 5766.34922863346 , 0 , 4867.80541056062 , 4729.92679211164 , 4952.96065933955 , 4727.85004233156 , 4831.79248876202 , 4821.54637812867 , 4898.38597658079 ], [30543.5825851687 , 30705.2386901435 , 36794.0500661266 , 41181.4563938447 , 0 , 34177.2781407906 , 36997.8676254846 , 34176.4213183271 , 33461.4980694385 , 34180.0378477241 , 37135.8254783279 , 34181.5026744768 ] ]; $total = [565.584106055305 , 673.432158814844 , 866.452368687518 , 843.730070161957 , 710.749187131998 , 791.845065563979 , 866.987240732125 , 875.519962266143 , 832.660416121803 , 834.885519979762 , 831.979462340642 , 859.064839282888 ]; for ($j = 4; $j <= 11; $j++) { $all = 0; for ($i = 7; $i <= 12; $i++) { $sum = 0; for ($y = 0; $y < $j; $y++) { $sum += $array[$i][$y]; } $x = rand(-10,10); $array[$i][$j] = $sum / $y * (1 - $x/100); $all += $array[$i][$j] * $array[$i-6][$j]; } $all -= $array[10][$j] * $array[4][$j]; $array[10][$j] = ($total[$j] - $all) / $array[4][$j]; } echo "<table>"; for ($i = 1; $i <= 12; $i++) { echo "<tr>"; for ($j = 0; $j <= 11; $j++) { echo "<td>".$array[$i][$j]."</td>"; } echo "</tr>"; } echo "</table>"; ?> RENIK2095
Ответить
Сообщение Всем добрый день! Имеется код на PHP, который берет данные из массива с Объемами, фактическими данными по удельному показателю и показателю Итого (во вложенном файле строки 3-9 для объемов, 13-18 для удельного показателя и 24 для Итого) Фактические данные выделены серым цветом (прогнозируемые персиковым), номера столбцов равны месяцам Задача скрипта "спрогнозировать" все значения удельных показателей так, чтобы по каждому столбцу (каждому месяцу) в строке 22 получилось значение равное соответствующему в строке 24 Здесь всплывают два огромных минуса: 1. я Полнейший нуль в VBA (мой максимум сейчас - вызвать окно с выбором файла, чтобы из него забрать данные фиксированными диапазонами) 2. Необходимо на VBA сделать массивы диапазонами - чтобы не вручную забивать цифры каждый раз, а обьявить диапазоны, т..к. кол-во фактических месяцев с каждым разом будет увеличиваться, а количество прогнозируемых месяцев - уменьшаться. Полученные значения получается должны быть в диапазоне H13:O18 Просто буду очень благодарен Вам за помощь в этом вопросе Тыкался сам, но было безуспешно, хотя вроде и сам код на php не сложный... Ниже код на PHP: <?php $array = [ [], [0.001983722892 , 0.002454802907 , 0.00240168363199999 , 0.002467132712 , 0.002318982636 , 0.00289868783716531 , 0.00266427644875827 , 0.00309161722020992 , 0.00295969479826555 , 0.0029055918587179 , 0.002636811547867 , 0.00268997774783406 ], [0.00724825848399998 , 0.00767729885199999 , 0.00781564347599998 , 0.009902330324 , 0.00702216096799998 , 0.0101514558495804 , 0.0102390578623509 , 0.0102911933058265 , 0.010084993875727 , 0.010337726019505 , 0.0101310239444554 , 0.00981733156198514 ], [0.00829330708 , 0.010518815584 , 0.01135630304 , 0.01044247092 , 0.0116344271599999 , 0.0111830198464008 , 0.0156543779393486 , 0.0161094203920863 , 0.0124555861117583 , 0.0105512408376105 , 0.0113801937280126 , 0.0111593395377656 ], [0.0477632229999999 , 0.0473264259999999 , 0.052659839 , 0.047960513 , 0.046587912 , 0.04254796 , 0.0461566 , 0.04664811 , 0.04870762 , 0.05161065 , 0.04875199 , 0.05312238 ], [0.016599231 , 0.01595188 , 0.018253745 , 0.018364136 , 0 , 0.01690439 , 0.01596446 , 0.016271 , 0.01728973 , 0.01748884 , 0.01750557 , 0.0172207 ], [0.000797128 , 0.000702861 , 0.00077185 , 0.000839495 , 0 , 0.00085973 , 0.00089968 , 0.00085978 , 0.00085968 , 0.00085973 , 0.00088971 , 0.00085973 ], [21651.7102335593 , 24048.0979932668 , 26776.6366771995 , 26042.4752280744 , 23823.2040867541 , 22849.3121186933 , 22506.4979243501 , 21882.3180625424 , 22698.455464869 , 22385.9088254069 , 21395.5754917414 , 23286.1044387001 ], [10023.3407742672 , 9810.70237749304 , 13695.3669105461 , 11709.4037808432 , 12670.387761297 , 11336.1130562309 , 11255.0902986016 , 11245.2479010438 , 11330.7223452953 , 11316.6814204756 , 11531.0114816262 , 11363.8971862874 ], [14850.2502747518 , 14013.0089236443 , 14908.0185624173 , 15479.9520440869 , 12460.8390947777 , 12834.219888273 , 13089.480613167 , 13037.064018601 , 11948.2716042775 , 12042.3379341792 , 13395.8790882667 , 13201.6136821955 ], [4244.43545620824 , 5847.43095381979 , 7593.09911010074 , 7535.67515496508 , 6383.34376594431 , 8351.47309243289 , 8191.19134394005 , 7977.76843779789 , 8045.50690153637 , 7980.96509329677 , 7976.09854055607 , 7977.82030450603 ], [6009.23019642513 , 5852.56058290906 , 5344.35059220983 , 5766.34922863346 , 0 , 4867.80541056062 , 4729.92679211164 , 4952.96065933955 , 4727.85004233156 , 4831.79248876202 , 4821.54637812867 , 4898.38597658079 ], [30543.5825851687 , 30705.2386901435 , 36794.0500661266 , 41181.4563938447 , 0 , 34177.2781407906 , 36997.8676254846 , 34176.4213183271 , 33461.4980694385 , 34180.0378477241 , 37135.8254783279 , 34181.5026744768 ] ]; $total = [565.584106055305 , 673.432158814844 , 866.452368687518 , 843.730070161957 , 710.749187131998 , 791.845065563979 , 866.987240732125 , 875.519962266143 , 832.660416121803 , 834.885519979762 , 831.979462340642 , 859.064839282888 ]; for ($j = 4; $j <= 11; $j++) { $all = 0; for ($i = 7; $i <= 12; $i++) { $sum = 0; for ($y = 0; $y < $j; $y++) { $sum += $array[$i][$y]; } $x = rand(-10,10); $array[$i][$j] = $sum / $y * (1 - $x/100); $all += $array[$i][$j] * $array[$i-6][$j]; } $all -= $array[10][$j] * $array[4][$j]; $array[10][$j] = ($total[$j] - $all) / $array[4][$j]; } echo "<table>"; for ($i = 1; $i <= 12; $i++) { echo "<tr>"; for ($j = 0; $j <= 11; $j++) { echo "<td>".$array[$i][$j]."</td>"; } echo "</tr>"; } echo "</table>"; ?> Автор - RENIK2095 Дата добавления - 12.08.2019 в 09:31