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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнение ячеек. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Заполнение ячеек.
roart Дата: Суббота, 28.06.2014, 20:01 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день.
Прошу совета у профи.
Имеется 2 таблицы

в одной таблице данные объединены в одной ячейке
пример:
[BA-EL-03:null:Plum:14900:12400:1];[BA-EL-08:null:Biscuit:14900:12400:1];[BA-EL-23:null:Gold Jeans Collection:14900:12400:1];[BA-EL-10:null:BluBerry:14900:12400:1];[BA-EL-07:null:Amarant:14900:12400:1];[BA-EL-15:null:Vanilla Ice:14900:12400:1];[BA-EL-21:null:Blue Jeans:14900:12400:1];[BA-EL-11:null:Mint:14900:12400:1]
где
[парт номер:null:Plum:цена:12400:наличие];...

во второй данные каждые в своей ячейке
пример
BA-EL-03 14900 2
BA-EL-08 14900 0
BA-EL-23 14900 2
BA-EL-10 14900 1
BA-EL-07 14900 1
BA-EL-15 14900 2
BA-EL-21 14900 0
BA-EL-11 14900 0
где
парт номер цена наличие

необходимо подставить цену и наличие из таблицы 2 в таблицу 1, поиск значений по парт номеру

в приложенном файле пример таблиц
К сообщению приложен файл: 9313859.xlsx (16.4 Kb)
 
Ответить
СообщениеДобрый день.
Прошу совета у профи.
Имеется 2 таблицы

в одной таблице данные объединены в одной ячейке
пример:
[BA-EL-03:null:Plum:14900:12400:1];[BA-EL-08:null:Biscuit:14900:12400:1];[BA-EL-23:null:Gold Jeans Collection:14900:12400:1];[BA-EL-10:null:BluBerry:14900:12400:1];[BA-EL-07:null:Amarant:14900:12400:1];[BA-EL-15:null:Vanilla Ice:14900:12400:1];[BA-EL-21:null:Blue Jeans:14900:12400:1];[BA-EL-11:null:Mint:14900:12400:1]
где
[парт номер:null:Plum:цена:12400:наличие];...

во второй данные каждые в своей ячейке
пример
BA-EL-03 14900 2
BA-EL-08 14900 0
BA-EL-23 14900 2
BA-EL-10 14900 1
BA-EL-07 14900 1
BA-EL-15 14900 2
BA-EL-21 14900 0
BA-EL-11 14900 0
где
парт номер цена наличие

необходимо подставить цену и наличие из таблицы 2 в таблицу 1, поиск значений по парт номеру

в приложенном файле пример таблиц

Автор - roart
Дата добавления - 28.06.2014 в 20:01
ikki Дата: Суббота, 28.06.2014, 20:19 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
макросом можно. в крайнем случае - UDF.
но не в этой теме. точнее - не на этом форуме.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 28.06.2014, 20:19
 
Ответить
Сообщениемакросом можно. в крайнем случае - UDF.
но не в этой теме. точнее - не на этом форуме.

Автор - ikki
Дата добавления - 28.06.2014 в 20:19
ikki Дата: Суббота, 28.06.2014, 21:01 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
макросом можно.

mea culpa - автор захотел именно макрос и за денежку.
отговорить не удалось :(
оплату получил. решение выслал.

но если кто захочет решить формулами - велкам.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
макросом можно.

mea culpa - автор захотел именно макрос и за денежку.
отговорить не удалось :(
оплату получил. решение выслал.

но если кто захочет решить формулами - велкам.

Автор - ikki
Дата добавления - 28.06.2014 в 21:01
Hugo Дата: Суббота, 28.06.2014, 22:00 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3858
Репутация: 815 ±
Замечаний: 0% ±

365
Ну ладно, к артикулу подтянуть цену не проблема (макросом). Но откуда берётся остаток? Или данные в примере - "от фонаря"?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНу ладно, к артикулу подтянуть цену не проблема (макросом). Но откуда берётся остаток? Или данные в примере - "от фонаря"?

Автор - Hugo
Дата добавления - 28.06.2014 в 22:00
ikki Дата: Суббота, 28.06.2014, 22:02 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
там оказались нюансы. но процесс идёт yes


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениетам оказались нюансы. но процесс идёт yes

Автор - ikki
Дата добавления - 28.06.2014 в 22:02
roart Дата: Понедельник, 30.06.2014, 11:30 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Огромное спасибо ikki!!
Но появился ещё один вопрос по поиску.
Когда поиск происходит по буквенно-цифровым ID(парт номерам), всё хорошо.
Когда только цифры, почему то ничего не ищется. Изменение свойств ячеек не помогает.
Приходится изгаляться и к цифрам подставлять буква/символы, а затем удалять.
Такой же косяк у меня был и с ВПР когда то. Проблему самостоятельно так и не получилось решить.
 
Ответить
СообщениеОгромное спасибо ikki!!
Но появился ещё один вопрос по поиску.
Когда поиск происходит по буквенно-цифровым ID(парт номерам), всё хорошо.
Когда только цифры, почему то ничего не ищется. Изменение свойств ячеек не помогает.
Приходится изгаляться и к цифрам подставлять буква/символы, а затем удалять.
Такой же косяк у меня был и с ВПР когда то. Проблему самостоятельно так и не получилось решить.

Автор - roart
Дата добавления - 30.06.2014 в 11:30
ikki Дата: Понедельник, 30.06.2014, 11:39 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
roart, я сейчас на работе, а почты у меня здесь нет.
или ждите до вечера или кидайте сюда - но обязательно с макросом и обязательно в формате xls


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеroart, я сейчас на работе, а почты у меня здесь нет.
или ждите до вечера или кидайте сюда - но обязательно с макросом и обязательно в формате xls

Автор - ikki
Дата добавления - 30.06.2014 в 11:39
roart Дата: Понедельник, 30.06.2014, 12:12 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
ikki, подожду до вечера, спасибо.
 
Ответить
Сообщениеikki, подожду до вечера, спасибо.

Автор - roart
Дата добавления - 30.06.2014 в 12:12
Pelena Дата: Понедельник, 30.06.2014, 13:15 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 19533
Репутация: 4638 ±
Замечаний: ±

Excel 365 & Mac Excel
А давайте не будем нарушать Правила форума.
Раз вопрос был задан на форуме, то и решение полагается выложить здесь.


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеА давайте не будем нарушать Правила форума.
Раз вопрос был задан на форуме, то и решение полагается выложить здесь.

Автор - Pelena
Дата добавления - 30.06.2014 в 13:15
ikki Дата: Понедельник, 30.06.2014, 13:22 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
не уверен, что в этом есть какой-л. смысл, ибо задача оч.конкретно-специфическая, да и решение - тоже.
но: требование модератора - есть требование модератора.
[vba]
Код
Sub t()
   Dim r As Range, c As Range, d As Object, re As Object, mc As Object, i&, s$, x
    
   Set re = CreateObject("vbscript.regexp")
     re.Pattern = "\[([^:]+):([^:]+:[^:]+):([^:]+):([^:]+):(.+?)\]"
     re.Global = True
   Set d = CreateObject("scripting.dictionary")
    
   With Sheets("прайс с ценами")
     a = Range(.[a3], .Cells(.Rows.Count, 1)).Resize(, 3).Value
     For i = 1 To UBound(a)
       If a(i, 1) > "" Then d(a(i, 1)) = a(i, 2) & "|" & a(i, 3)
     Next
   End With
    
   With Sheets("заполнить")
     Set r = Range(.[b1], .Cells(.Rows.Count, 2))
   End With
    
   For Each c In r.Cells
     Set mc = re.Execute(c.Value)
     For i = 0 To mc.Count - 1
       If d.exists(mc(i).submatches(0)) Then
         x = Split(d(mc(i).submatches(0)), "|")
         s = "[" & mc(i).submatches(0) & ":" & mc(i).submatches(1) & ":" & x(0) & ":" _
           & mc(i).submatches(3) & ":" & x(1) & "]"
       Else
         s = "[" & mc(i).submatches(0) & ":" & mc(i).submatches(1) & ":0:" _
           & mc(i).submatches(3) & ":0]"
       End If
       c.Value = Replace(c.Value, mc(i), s)
     Next
   Next
End Sub
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Понедельник, 30.06.2014, 16:57
 
Ответить
Сообщениене уверен, что в этом есть какой-л. смысл, ибо задача оч.конкретно-специфическая, да и решение - тоже.
но: требование модератора - есть требование модератора.
[vba]
Код
Sub t()
   Dim r As Range, c As Range, d As Object, re As Object, mc As Object, i&, s$, x
    
   Set re = CreateObject("vbscript.regexp")
     re.Pattern = "\[([^:]+):([^:]+:[^:]+):([^:]+):([^:]+):(.+?)\]"
     re.Global = True
   Set d = CreateObject("scripting.dictionary")
    
   With Sheets("прайс с ценами")
     a = Range(.[a3], .Cells(.Rows.Count, 1)).Resize(, 3).Value
     For i = 1 To UBound(a)
       If a(i, 1) > "" Then d(a(i, 1)) = a(i, 2) & "|" & a(i, 3)
     Next
   End With
    
   With Sheets("заполнить")
     Set r = Range(.[b1], .Cells(.Rows.Count, 2))
   End With
    
   For Each c In r.Cells
     Set mc = re.Execute(c.Value)
     For i = 0 To mc.Count - 1
       If d.exists(mc(i).submatches(0)) Then
         x = Split(d(mc(i).submatches(0)), "|")
         s = "[" & mc(i).submatches(0) & ":" & mc(i).submatches(1) & ":" & x(0) & ":" _
           & mc(i).submatches(3) & ":" & x(1) & "]"
       Else
         s = "[" & mc(i).submatches(0) & ":" & mc(i).submatches(1) & ":0:" _
           & mc(i).submatches(3) & ":0]"
       End If
       c.Value = Replace(c.Value, mc(i), s)
     Next
   Next
End Sub
[/vba]

Автор - ikki
Дата добавления - 30.06.2014 в 13:22
ikki Дата: Понедельник, 30.06.2014, 16:58 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
для доп.условия из сообщения №6 изменил строку[vba]
Код
If a(i, 1) > "" Then d(a(i, 1)) = a(i, 2) & "|" & a(i, 3)
[/vba]на[vba]
Код
If CStr(a(i, 1)) > "" Then d(CStr(a(i, 1))) = a(i, 2) & "|" & a(i, 3)
[/vba]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Понедельник, 30.06.2014, 18:04
 
Ответить
Сообщениедля доп.условия из сообщения №6 изменил строку[vba]
Код
If a(i, 1) > "" Then d(a(i, 1)) = a(i, 2) & "|" & a(i, 3)
[/vba]на[vba]
Код
If CStr(a(i, 1)) > "" Then d(CStr(a(i, 1))) = a(i, 2) & "|" & a(i, 3)
[/vba]

Автор - ikki
Дата добавления - 30.06.2014 в 16:58
  • Страница 1 из 1
  • 1
Поиск:

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