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

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вставка максимально приближенного значения путем исключения - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Вставка максимально приближенного значения путем исключения
nicalf Дата: Суббота, 10.11.2012, 23:27 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Доброго времени суток, уважаемые форумчане!
В прошлый раз Ваша помощь меня очень выручила, надеюсь, что и в этом случае Вы мне поможете.
Ситуация следующая, представьте, что есть 134 разных по вместимости ящика, и есть 19 видов товаров, которых нужно рассортировать по этим ящикам в зависимости от их вместимости, причем, если ящик № 5 заполнен товаром № 15, то товар № 15 больше ни в один ящик уже попасть не должен, причем товары должны быть рассортированы в порядке убывания, к сожалению ящики сортировать нельзя, более конкретный пример вложен в данное сообщение, как должно быть-выделено красным. Уже голову сломал над тем, как это сделать. Буду Вам признателен, если сможете помочь.
К сообщению приложен файл: -2-.xlsx (14.7 Kb)


Сообщение отредактировал nicalf - Суббота, 10.11.2012, 23:32
 
Ответить
СообщениеДоброго времени суток, уважаемые форумчане!
В прошлый раз Ваша помощь меня очень выручила, надеюсь, что и в этом случае Вы мне поможете.
Ситуация следующая, представьте, что есть 134 разных по вместимости ящика, и есть 19 видов товаров, которых нужно рассортировать по этим ящикам в зависимости от их вместимости, причем, если ящик № 5 заполнен товаром № 15, то товар № 15 больше ни в один ящик уже попасть не должен, причем товары должны быть рассортированы в порядке убывания, к сожалению ящики сортировать нельзя, более конкретный пример вложен в данное сообщение, как должно быть-выделено красным. Уже голову сломал над тем, как это сделать. Буду Вам признателен, если сможете помочь.

Автор - nicalf
Дата добавления - 10.11.2012 в 23:27
Hugo Дата: Воскресенье, 11.11.2012, 01:11 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3691
Репутация: 790 ±
Замечаний: 0% ±

365
Странно, сошлось smile

[vba]
Code
Sub tt()
     Dim a(), b(), i&, ii&
      
     a = [f2:f135].Value
     b = [b2:c20].Value
     ReDim c(1 To UBound(a), 1 To 2)
      
     For i = 1 To UBound(a)
         If Len(a(i, 1)) > 1 Then
             For ii = 1 To UBound(b)
                 If b(ii, 2) > 0 Then
                     If a(i, 1) >= b(ii, 2) Then
                         c(i, 1) = b(ii, 2)
                         c(i, 2) = b(ii, 1)
                         b(ii, 2) = 0
                         Exit For
                     End If
                 End If
             Next
         End If
     Next

     [i2].Resize(UBound(c), 2) = c
End Sub
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеСтранно, сошлось smile

[vba]
Code
Sub tt()
     Dim a(), b(), i&, ii&
      
     a = [f2:f135].Value
     b = [b2:c20].Value
     ReDim c(1 To UBound(a), 1 To 2)
      
     For i = 1 To UBound(a)
         If Len(a(i, 1)) > 1 Then
             For ii = 1 To UBound(b)
                 If b(ii, 2) > 0 Then
                     If a(i, 1) >= b(ii, 2) Then
                         c(i, 1) = b(ii, 2)
                         c(i, 2) = b(ii, 1)
                         b(ii, 2) = 0
                         Exit For
                     End If
                 End If
             Next
         End If
     Next

     [i2].Resize(UBound(c), 2) = c
End Sub
[/vba]

Автор - Hugo
Дата добавления - 11.11.2012 в 01:11
nicalf Дата: Воскресенье, 11.11.2012, 10:44 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

А возможно ли это сделать с помощью функций?
 
Ответить
СообщениеА возможно ли это сделать с помощью функций?

Автор - nicalf
Дата добавления - 11.11.2012 в 10:44
AlexM Дата: Воскресенье, 11.11.2012, 18:07 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Без дополнительного столбца не получилось. :-(
См. файл
К сообщению приложен файл: nicalf_AlexM.xls (79.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеБез дополнительного столбца не получилось. :-(
См. файл

Автор - AlexM
Дата добавления - 11.11.2012 в 18:07
nicalf Дата: Воскресенье, 11.11.2012, 19:27 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Спасибо, Вам большое! Ставлю плюс smile
 
Ответить
СообщениеСпасибо, Вам большое! Ставлю плюс smile

Автор - nicalf
Дата добавления - 11.11.2012 в 19:27
MCH Дата: Понедельник, 12.11.2012, 00:01 | Сообщение № 6
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Без доп. столбца
К сообщению приложен файл: nicalf_AlexM2.xls (72.5 Kb)
 
Ответить
СообщениеБез доп. столбца

Автор - MCH
Дата добавления - 12.11.2012 в 00:01
AlexM Дата: Понедельник, 12.11.2012, 08:37 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Здорово!!! Спасибо за урок.
А в названии файла ошибочка. Правильно nicalf_MCH.xls
wink



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЗдорово!!! Спасибо за урок.
А в названии файла ошибочка. Правильно nicalf_MCH.xls
wink

Автор - AlexM
Дата добавления - 12.11.2012 в 08:37
  • Страница 1 из 1
  • 1
Поиск:

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