Версия для слабовидящих
Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

 

= Мир MS Excel/Формула СЧЁТЕСЛИМН для 500000 строк (макрос) - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Формула СЧЁТЕСЛИМН для 500000 строк (макрос)
nikonka_muss Дата: Пятница, 30.04.2021, 21:37 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

2016
Добрый вечер.
Прошу помочь с макросами. Изначально составила формулы, по которым планировала делать расчеты. Но в файле будет 500000 строк, в итоге целый день шли расчеты, формулы пересчитывались, но так и не пересчитались.
Попробовала написать макрос макрорекордером, но быстрее работать не стало. Ниже макрос, пример тоже во вложении.
Помогите допилить его , пжлст, чтобы работало быстрее
Ну хоть два часа чтобы считалось, а не 8 ))

Sub Расшир()
    ActiveCell.FormulaR1C1 = _
        "=IF(AND(RC[-3]=""проверить фейс"",OR(COUNTIFS(C2,RC2,C4,RC4,C17,"">=""&RC17,C3,RC3,C14,"">=2"")>0,SUMIFS(C18,C2,RC2,C4,RC4,C3,RC3,C17,""<""&RC17)>=RC17)),""можно расширить"","""")"
    Selection.AutoFill Destination:=Range("V2:V34"), Type:=xlFillDefault
    Range("V2:V34").Select
Dim smallrng As Range
    For Each smallrng In Selection.Areas
        smallrng.Value = smallrng.Value
    Next smallrng
End Sub

К сообщению приложен файл: __.xlsm (22.1 Kb)


Сообщение отредактировал nikonka_muss - Пятница, 30.04.2021, 21:38
 
Ответить
СообщениеДобрый вечер.
Прошу помочь с макросами. Изначально составила формулы, по которым планировала делать расчеты. Но в файле будет 500000 строк, в итоге целый день шли расчеты, формулы пересчитывались, но так и не пересчитались.
Попробовала написать макрос макрорекордером, но быстрее работать не стало. Ниже макрос, пример тоже во вложении.
Помогите допилить его , пжлст, чтобы работало быстрее
Ну хоть два часа чтобы считалось, а не 8 ))

[vba]
Sub Расшир()    ActiveCell.FormulaR1C1 = _        "=ЕСЛИ(И(RC[-3]=""проверить фейс"",ИЛИ(СЧЁТЕСЛИМН(C2,RC2,C4,RC4,C17,"">=""&RC17,C3,RC3,C14,"">=2"")>0,СУММЕСЛИМН(C18,C2,RC2,C4,RC4,C3,RC3,C17,""<""&RC17)>=RC17)),""можно расширить"","""")"    Selection.AutoFill Destination:=Range("V2:V34"); Type:=xlFillDefault    Range("V2:V34").Select   Dim smallrng As Range     For Each smallrng In Selection.Areas         smallrng.Value = smallrng.Value     Next smallrngEnd Sub
[/vba]

Автор - nikonka_muss
Дата добавления - 30.04.2021 в 21:37
_Igor_61 Дата: Пятница, 30.04.2021, 22:39 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Цитата nikonka_muss, 30.04.2021 в 21:37, в сообщении № 1 ( писал(а)):
For Each
Макрорекордер это так записал? Подскажите, где такой макрорекордер можно найти :)
1. Для ускорения: проверьте файл на лишнее (УФ и обычное форматирование и объекты)
и удалите лишнее (например, у Вас до конца листа заливка по столбцам, а в рабочем файле возможно и еще что-то есть).
Для этого наберите в поисковике "как уменьшить размер файла Excel"
2. Если не поможет опишите то, что должны делать Ваши формулы (какой из чего результат должен появиться в конкретных ячейках)
3. Вместо AutoFill можно использовать Range(такой-то)=формула такая-то. Тогда формула вставится сразу в весь диапазон а не по очереди в каждую ячейку.
 
Ответить
Сообщение
Цитата nikonka_muss, 30.04.2021 в 21:37, в сообщении № 1 ( писал(а)):
For Each
Макрорекордер это так записал? Подскажите, где такой макрорекордер можно найти :)
1. Для ускорения: проверьте файл на лишнее (УФ и обычное форматирование и объекты)
и удалите лишнее (например, у Вас до конца листа заливка по столбцам, а в рабочем файле возможно и еще что-то есть).
Для этого наберите в поисковике "как уменьшить размер файла Excel"
2. Если не поможет опишите то, что должны делать Ваши формулы (какой из чего результат должен появиться в конкретных ячейках)
3. Вместо AutoFill можно использовать Range(такой-то)=формула такая-то. Тогда формула вставится сразу в весь диапазон а не по очереди в каждую ячейку.

Автор - _Igor_61
Дата добавления - 30.04.2021 в 22:39
Pelena Дата: Суббота, 01.05.2021, 07:36 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19517
Репутация: 4632 ±
Замечаний: ±

Excel 365 & Mac Excel
Цитата _Igor_61, 30.04.2021 в 22:39, в сообщении № 2 ( писал(а)):
Вместо AutoFill можно использовать Range(такой-то)=формула такая-то
Я всегда тоже так делала, но не так давно столкнулась с ситуацией, когда надо было заполнить формулой порядка 50 000 строк. Была удивлена, что AutoFill справился значительно быстрее.


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Цитата _Igor_61, 30.04.2021 в 22:39, в сообщении № 2 ( писал(а)):
Вместо AutoFill можно использовать Range(такой-то)=формула такая-то
Я всегда тоже так делала, но не так давно столкнулась с ситуацией, когда надо было заполнить формулой порядка 50 000 строк. Была удивлена, что AutoFill справился значительно быстрее.

Автор - Pelena
Дата добавления - 01.05.2021 в 07:36
bmv98rus Дата: Суббота, 01.05.2021, 13:27 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016
пролемма не в 500000 строках данных, а в применении формул 500000 раз.
1.
СЧЁТЕСЛИМН($C:$C;$C2;$D:$D;$D2;$N:$N;">1";$B:$B;$B2);$O2=1)
который обсчитывает остальные 500 000 строк. В отличии от SUMIFS/SUMIF и даже от COUNTIF он не ограничивает область используемой и работает дольше. То есть нужно ограничит диапазон
2. все формула
=ЕСЛИ(И(S2="проверить фейс";ИЛИ(СЧЁТЕСЛИМН($B:$B;$B2;$D:$D;$D2;$Q:$Q;">="&$Q2;$C:$C;$C2;$N:$N;">=2")>0;СУММЕСЛИМН($R:$R;$B:$B;$B2;$D:$D;$D2;$C:$C;$C2;$Q:$Q;"<"&$Q2)>=$Q2));"можно расширить";"")

в OR (ИЛИ) всегда будет произведен расчет и количества и суммы по условию, с учетом массива строк - это лишние затраты.
=ЕСЛИ(И(S2="проверить фейс";ЕСЛИ(СЧЁТЕСЛИМН($B;1:$B$600000;$B2;$D$1:$D$600000;$D2;$Q$1:$Q$600000;">="&$Q2;$C$1:$C$600000;$C2;$N$1:$N$600000;">=2");1;ЕСЛИ(СУММЕСЛИМН($R:$R;$B:$B;$B2;$D:$D;$D2;$C:$C;$C2;$Q:$Q;"<"&$Q2)>=$Q2;1)));"можно расширить";"")


При этом если знать вероятность выполнения того или иного условия то для оптимизации важен порялок, что сравнивать сперва.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 02.05.2021, 07:30
 
Ответить
Сообщениепролемма не в 500000 строках данных, а в применении формул 500000 раз.
1.
СЧЁТЕСЛИМН($C:$C;$C2;$D:$D;$D2;$N:$N;">1";$B:$B;$B2);$O2=1)
который обсчитывает остальные 500 000 строк. В отличии от SUMIFS/SUMIF и даже от COUNTIF он не ограничивает область используемой и работает дольше. То есть нужно ограничит диапазон
2. все формула
=ЕСЛИ(И(S2="проверить фейс";ИЛИ(СЧЁТЕСЛИМН($B:$B;$B2;$D:$D;$D2;$Q:$Q;">="&$Q2;$C:$C;$C2;$N:$N;">=2")>0;СУММЕСЛИМН($R:$R;$B:$B;$B2;$D:$D;$D2;$C:$C;$C2;$Q:$Q;"<"&$Q2)>=$Q2));"можно расширить";"")

в OR (ИЛИ) всегда будет произведен расчет и количества и суммы по условию, с учетом массива строк - это лишние затраты.
=ЕСЛИ(И(S2="проверить фейс";ЕСЛИ(СЧЁТЕСЛИМН($B;1:$B$600000;$B2;$D$1:$D$600000;$D2;$Q$1:$Q$600000;">="&$Q2;$C$1:$C$600000;$C2;$N$1:$N$600000;">=2");1;ЕСЛИ(СУММЕСЛИМН($R:$R;$B:$B;$B2;$D:$D;$D2;$C:$C;$C2;$Q:$Q;"<"&$Q2)>=$Q2;1)));"можно расширить";"")


При этом если знать вероятность выполнения того или иного условия то для оптимизации важен порялок, что сравнивать сперва.

Автор - bmv98rus
Дата добавления - 01.05.2021 в 13:27
doober Дата: Суббота, 01.05.2021, 15:52 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 993
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Пока писал макрос вместо формул, Медведь обогнал на повороте.
Вдруг макрос быстрее формул работать будет




Сообщение отредактировал doober - Суббота, 01.05.2021, 15:53
 
Ответить
СообщениеПока писал макрос вместо формул, Медведь обогнал на повороте.
Вдруг макрос быстрее формул работать будет

Автор - doober
Дата добавления - 01.05.2021 в 15:52
bmv98rus Дата: Суббота, 01.05.2021, 19:03 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016
doober, ну формульный вариант провальный, конечно оптимизация дала свой результат
=ЕСЛИ(И(СЧЁТЕСЛИМН($C:$C;$C3;$D:$D;$D3;$N:$N;">1";$B:$B;$B3);$O3=1);"проверить фейс";"")
39,125
=ЕСЛИ(И(S3="проверить фейс";ИЛИ(СЧЁТЕСЛИМН($B:$B;$B3;$D:$D;$D3;$Q:$Q;">="&$Q3;$C:$C;$C3;$N:$N;">=2")>0;СУММЕСЛИМН($R:$R;$B:$B;$B3;$D:$D;$D3;$C:$C;$C3;$Q:$Q;"<"&$Q3)>=$Q3));"можно расширить";"")
72,61719

=ЕСЛИ(И(СЧЁТЕСЛИМН($C$1:$C$600000;$C3;$D$1:$D$600000;$D3;$N$1:$N$600000;">1";$B$1:$B$600000;$B3);$O3=1);"проверить фейс";"")
38,88281
=ЕСЛИ(И(S3="проверить фейс";ЕСЛИ(СЧЁТЕСЛИМН($B:$B;$B3;$D:$D;$D3;$Q:$Q;">="&$Q3;$C:$C;$C3;$N:$N;">=2");1;ЕСЛИ(СУММЕСЛИМН($R:$R;$B:$B;$B3;$D:$D;$D3;$C:$C;$C3;$Q:$Q;"<"&$Q3)>=$Q3;1)));"можно расширить";"")
37,5625
но замер я делал на 100 расчетах по 500000 строкам заполненным.
Можно предположить что расчет 500000 займет в 5000 раз больше и это неприемлемо.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеdoober, ну формульный вариант провальный, конечно оптимизация дала свой результат
=ЕСЛИ(И(СЧЁТЕСЛИМН($C:$C;$C3;$D:$D;$D3;$N:$N;">1";$B:$B;$B3);$O3=1);"проверить фейс";"")
39,125
=ЕСЛИ(И(S3="проверить фейс";ИЛИ(СЧЁТЕСЛИМН($B:$B;$B3;$D:$D;$D3;$Q:$Q;">="&$Q3;$C:$C;$C3;$N:$N;">=2")>0;СУММЕСЛИМН($R:$R;$B:$B;$B3;$D:$D;$D3;$C:$C;$C3;$Q:$Q;"<"&$Q3)>=$Q3));"можно расширить";"")
72,61719

=ЕСЛИ(И(СЧЁТЕСЛИМН($C$1:$C$600000;$C3;$D$1:$D$600000;$D3;$N$1:$N$600000;">1";$B$1:$B$600000;$B3);$O3=1);"проверить фейс";"")
38,88281
=ЕСЛИ(И(S3="проверить фейс";ЕСЛИ(СЧЁТЕСЛИМН($B:$B;$B3;$D:$D;$D3;$Q:$Q;">="&$Q3;$C:$C;$C3;$N:$N;">=2");1;ЕСЛИ(СУММЕСЛИМН($R:$R;$B:$B;$B3;$D:$D;$D3;$C:$C;$C3;$Q:$Q;"<"&$Q3)>=$Q3;1)));"можно расширить";"")
37,5625
но замер я делал на 100 расчетах по 500000 строкам заполненным.
Можно предположить что расчет 500000 займет в 5000 раз больше и это неприемлемо.

Автор - bmv98rus
Дата добавления - 01.05.2021 в 19:03
doober Дата: Суббота, 01.05.2021, 22:02 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 993
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Не поленился, набил файл на 600 тыс строк
30 секунд работал макрос


 
Ответить
СообщениеНе поленился, набил файл на 600 тыс строк
30 секунд работал макрос

Автор - doober
Дата добавления - 01.05.2021 в 22:02
bmv98rus Дата: Воскресенье, 02.05.2021, 07:31 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016
Цитата doober, 01.05.2021 в 22:02, в сообщении № 7 ( писал(а)):
600 тыс строк
руками? :D


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Цитата doober, 01.05.2021 в 22:02, в сообщении № 7 ( писал(а)):
600 тыс строк
руками? :D

Автор - bmv98rus
Дата добавления - 02.05.2021 в 07:31
doober Дата: Воскресенье, 02.05.2021, 09:14 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 993
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Цитата bmv98rus, 02.05.2021 в 07:31, в сообщении № 8 ( писал(а)):
руками?

hands Я руками больше 2-х не набиваю никогда, ленивый очень


 
Ответить
Сообщение
Цитата bmv98rus, 02.05.2021 в 07:31, в сообщении № 8 ( писал(а)):
руками?

hands Я руками больше 2-х не набиваю никогда, ленивый очень

Автор - doober
Дата добавления - 02.05.2021 в 09:14
nikonka_muss Дата: Воскресенье, 02.05.2021, 16:02 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

2016
при запуске макроса в тестовом файле, который прикладывала, все работает. Скопировала в этот файл другие строчки (ни заголовки ни порядок столбцов не поменялся) выдаёт ошибку "Subscript out of range". И вот эта строка в макросе подсвечивается жёлтым.

в чем может быть причина ? Приложила файл

 If keys(i) > dNO(n, 4) Then

К сообщению приложен файл: 9053270.xlsm (62.1 Kb)


Сообщение отредактировал nikonka_muss - Воскресенье, 02.05.2021, 16:24
 
Ответить
Сообщениепри запуске макроса в тестовом файле, который прикладывала, все работает. Скопировала в этот файл другие строчки (ни заголовки ни порядок столбцов не поменялся) выдаёт ошибку "Subscript out of range". И вот эта строка в макросе подсвечивается жёлтым.

в чем может быть причина ? Приложила файл

[vba]
 If keys(i) > dNO(n, 4) Then
[/vba]

Автор - nikonka_muss
Дата добавления - 02.05.2021 в 16:02
nikonka_muss Дата: Воскресенье, 02.05.2021, 16:10 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

2016
Цитата _Igor_61, 30.04.2021 в 22:39, в сообщении № 2 ( писал(а)):
Макрорекордер это так записал? Подскажите, где такой макрорекордер можно найти


это я уже сама пыталась дописать)) думала если будет вставляться значениями, то быстрее получится)

Ограничила, кстати, в формуле диапозон от 1 до 500 000, быстрее посчиталось на пару часов, но все равно конечно несколько часов заняло это
 
Ответить
Сообщение
Цитата _Igor_61, 30.04.2021 в 22:39, в сообщении № 2 ( писал(а)):
Макрорекордер это так записал? Подскажите, где такой макрорекордер можно найти


это я уже сама пыталась дописать)) думала если будет вставляться значениями, то быстрее получится)

Ограничила, кстати, в формуле диапозон от 1 до 500 000, быстрее посчиталось на пару часов, но все равно конечно несколько часов заняло это

Автор - nikonka_muss
Дата добавления - 02.05.2021 в 16:10
doober Дата: Воскресенье, 02.05.2021, 19:13 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 993
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Пропустили
If C.Exists(dNO(n, 4)) Then
keys = C.keys

For i = 0 To C.Count - 1
К сообщению приложен файл: 7767503.xlsm (66.8 Kb)


 
Ответить
СообщениеПропустили
If C.Exists(dNO(n, 4)) Then
keys = C.keys

For i = 0 To C.Count - 1

Автор - doober
Дата добавления - 02.05.2021 в 19:13
Chula7094 Дата: Воскресенье, 02.05.2021, 20:26 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте!
Могу предложить следующий вариант решения, обо тоже знаю, что если использовать в vba метод задействования изменения какого-то состояние ячейки, будь то значение, формат и т.д, то ресурс памяти задействуется значительно.
Гораздо проще в этом случае использовать массив.
Допустим, у нас имеется некий структурированный непрерывный диапазон данных с заголовками, как полагается, располагающийся в диапазоне, начиная с ячейки A2.
Это дает нам возможность определить размер нашего массива.

Option Base 1
With ThisWorkBook.WorkSheets("Название обрабатываемого листа")
Dim ArrData() as Variant, I as Long
ReDim ArrData(.Cells(1, 1).CurrentRegoin.Rows.Count - 1)
'Запускаем цикл заполнения массива данными, где мы используем объект Application.WorkSeetFunction
I=1
Do While .Cells(I+1,1).Value<>""
'Производим анализ
If .Cells(I+1,15)Value=1 And Application.WorkSeetFunction.CountIfs("условия функции") Then '- вот здесь метод CountIfs, соответствующий Вашей функции СУММЕСЛИМН, нужно заполнить корректными данными
ArrData(I)="проверить фейс"
Else
ArrData(I)=""
End if
Loop
'А дальше просто заполняете нужный Вам диапазон данными массива:
.Range(.Cells(2, 19), .Cells(UBound(ArrData) + 1, 19)).Value = ArrData
End With



Сообщение отредактировал Chula7094 - Воскресенье, 02.05.2021, 23:56
 
Ответить
СообщениеЗдравствуйте!
Могу предложить следующий вариант решения, обо тоже знаю, что если использовать в vba метод задействования изменения какого-то состояние ячейки, будь то значение, формат и т.д, то ресурс памяти задействуется значительно.
Гораздо проще в этом случае использовать массив.
Допустим, у нас имеется некий структурированный непрерывный диапазон данных с заголовками, как полагается, располагающийся в диапазоне, начиная с ячейки A2.
Это дает нам возможность определить размер нашего массива.
[vba]
Option Base 1With ТhisWorkBook.WorkSheets("Название обрабатываемого листа")Dim ArrData() as Variant; I as LongReDim ArrData(.Cells(1; 1).CurrentRegoin.Rows.Count - 1)'Запускаем цикл заполнения массива данными; где мы используем объект Application.WorkSeetFunctionI=1Do While .Cells(I+1;1).Value<>""'Производим анализIf .Cells(I+1;15)Value=1 And Application.WorkSeetFunction.CountIfs("условия функции") Then '- вот здесь метод CountIfs; соответствующий Вашей функции СУММЕСЛИМН; нужно заполнить корректными даннымиArrData(I)="проверить фейс"ElseArrData(I)=""End ifLoop'А дальше просто заполняете нужный Вам диапазон данными массива:.Range(.Cells(2; 19); .Cells(UBound(ArrData) + 1; 19)).Value = ArrDataEnd With
[/vba]

Автор - Chula7094
Дата добавления - 02.05.2021 в 20:26
bmv98rus Дата: Понедельник, 03.05.2021, 10:50 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016
Chula7094, Если следовать задумке ТС, то и ваш метод можно использовать, но я наглядно показал, что на объеме значений функции листа становятся не столь стремительными и они не станут быстрее от применения не на лист а в коде.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеChula7094, Если следовать задумке ТС, то и ваш метод можно использовать, но я наглядно показал, что на объеме значений функции листа становятся не столь стремительными и они не станут быстрее от применения не на лист а в коде.

Автор - bmv98rus
Дата добавления - 03.05.2021 в 10:50
nikonka_muss Дата: Понедельник, 03.05.2021, 17:53 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

2016
Взяла макрос doober
это просто праздник какой-то. 30 секунд и готово. Спасибо огромнейшее за помощь !!!
 
Ответить
СообщениеВзяла макрос doober
это просто праздник какой-то. 30 секунд и готово. Спасибо огромнейшее за помощь !!!

Автор - nikonka_muss
Дата добавления - 03.05.2021 в 17:53
nikonka_muss Дата: Пятница, 07.05.2021, 14:41 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

2016
Добрый день
Начала работать в этом файле с макросом, а он не верно считает данные. По формуле одни данные, макрос - немного отличаются.
doober, можете помочь ? Пожалуйста
К сообщению приложен файл: 7767503-5-.xlsm (29.0 Kb)
 
Ответить
СообщениеДобрый день
Начала работать в этом файле с макросом, а он не верно считает данные. По формуле одни данные, макрос - немного отличаются.
doober, можете помочь ? Пожалуйста

Автор - nikonka_muss
Дата добавления - 07.05.2021 в 14:41
doober Дата: Пятница, 07.05.2021, 18:08 | Сообщение № 17
Группа: Друзья
Ранг: Ветеран
Сообщений: 993
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.
Смогу, только опишите логику получения данных.
Только на формулы не опирайтесь, своими словами.
Я пытался адаптировать , как считает формула, мог и ошибиться или что то не учел


 
Ответить
СообщениеЗдравствуйте.
Смогу, только опишите логику получения данных.
Только на формулы не опирайтесь, своими словами.
Я пытался адаптировать , как считает формула, мог и ошибиться или что то не учел

Автор - doober
Дата добавления - 07.05.2021 в 18:08
nikonka_muss Дата: Пятница, 07.05.2021, 22:41 | Сообщение № 18
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

2016
Колонка true (СТМ) - эти позиции должны быть по 2 шт минимум. В идеале. Колонка ЛОЖЬ - количество по остальным позициям, за счет которых я могу увеличить СТМ.
Проверить фейс - я смотрю по определенной группе, внутри полки, есть ли где СТМ 1 штука, при этом ЛОЖЬ - больше 1.
Можно расширить - по тем позициям, по которым выяснили, что нужно проверить фейс, смотрим есть ли возможность поставить не 1, а 2 штуки, за счет позиций из колонки ЛОЖЬ. Для этого я по ширине пытаюсь понять хватит ли мне места, так как у всех позиций ширина разная.
Вот например, позиция стм 5 см (1 шт), а другая обычная (ложь) - 3 см (2 шт). И за счет уменьшения ее, все равно стм не увеличить, места не хватит.
А там где места хватает - коммент можно расширить
 
Ответить
СообщениеКолонка true (СТМ) - эти позиции должны быть по 2 шт минимум. В идеале. Колонка ЛОЖЬ - количество по остальным позициям, за счет которых я могу увеличить СТМ.
Проверить фейс - я смотрю по определенной группе, внутри полки, есть ли где СТМ 1 штука, при этом ЛОЖЬ - больше 1.
Можно расширить - по тем позициям, по которым выяснили, что нужно проверить фейс, смотрим есть ли возможность поставить не 1, а 2 штуки, за счет позиций из колонки ЛОЖЬ. Для этого я по ширине пытаюсь понять хватит ли мне места, так как у всех позиций ширина разная.
Вот например, позиция стм 5 см (1 шт), а другая обычная (ложь) - 3 см (2 шт). И за счет уменьшения ее, все равно стм не увеличить, места не хватит.
А там где места хватает - коммент можно расширить

Автор - nikonka_muss
Дата добавления - 07.05.2021 в 22:41
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!