Страницы: 1
RSS
Поиск вхождений в диапазоне по маске., Сравнить два диапазона.
 
Попробуйте решить мою задачу, господа. Ее реально решить, интересно?
Есть файл с двумя столбами "Список фото" и "Список артикулов". Необходимо провести поиск вхождений, используя "Список артикулов" как маску. Желательно сделать в макросе функцию, которая позволила бы устанавливать количество первых знаков из столбца "Список артикулов" по которым нужно искать вхождения. То есть, ставим искать вхождения по первым 3 знакам из ячеек в столбце "Список артикулов" и тогда поиск выполняется по первым 3 знакам из ячейки.
Похоже на ВПР, но с поиск вхождений по маске из диапазона.
 
Цитата
fuzzlo пишет: "Список артикулов" по которым нужно искать вхождения. То есть, ставим искать
вхождения по первым 3 знакам из ячеек в столбце "Список артикулов" и тогда поиск
выполняется по первым 3 знакам из ячейки.
адски замутили ищем артикулы в артикулах, свой пример поправте хотя бы пару строк че где ищем
Изменено: Сергей - 15.04.2014 13:00:14
Лень двигатель прогресса, доказано!!!
 
Данные в пределах столбцов уникальные?
 
Цитата
Сергей пишет: адски замутили ищем артикулы в артикулах, свой пример поправте хотя бы пару строк че где ищем
Вы хотя бы, файл открыли?
 
Цитата
Юрий М пишет:
Данные в пределах столбцов уникальные?
Да.
 
Цитата
fuzzlo пишет:
файл открыли?
Не только открыл но и начал ковырятся
Лень двигатель прогресса, доказано!!!
 
Код
=COUNTIF(A:A,LEFT(B2,6)&"*") 
не?
Или не 6, а 3 символа, т.е. 10.?
А как выводить все 255 (или 815) адресов - не знаю... И зачем? Или нужен только первый адрес?
Изменено: Hugo - 15.04.2014 13:09:02
 
Ответ на вопрос:
Цитата
fuzzlo пишет:
Ее реально решить, интересно?
положительный)
 
Цитата
Hugo пишет:
=COUNTIF(A:A,LEFT(B2,6)&"*"  ;)  
Вставил и выдал ошибку в формуле. http://prntscr.com/3a5ukz
 
Цитата
Сергей пишет:
Не только открыл но и начал ковырятся
Правда, если бы смог более емко описать, то так бы и сделал. Но, как говориться.... :(
 
Цитата
fuzzlo пишет:
Вставил и выдал ошибку в формуле
Вставлять нужно уметь! Не нужно бездумно вставлять как попало!  :)
Перевести формулу на свой локальный язык, подправить разделители под свои локальные... Откуда мне знать, что там у Вас - я написал как у меня в Экселе работает.
Это подсчёт количества повторений. СЧЁТЕСЛИ() в русской версии.
 
Цитата
Hugo пишет:
Вставлять нужно уметь!
Хорошо. Научите. Я же файл с примером приложил.
 
Цитата
Hugo пишет:
А как выводить все 255 (или 815) адресов - не знаю... И зачем? Или нужен только первый адрес?
Если возможно все, то можно все адреса.
 
Цитата
fuzzlo пишет:
Хорошо. Научите. Я же файл с примером приложил.
Хорошо, учу.
Если бы я мог тоже приложить файл - Вы бы увидели уже рабочую формулу, в своей локализации.
А так переводить Вам - может нужен французский или немецкий, или испанский вариант? Мне ведь не известно. Может и не нужно переводить вообще...
Ищите у себя файл FUNCS.xls - там перевод функций с английского на локальный. И переводите. Разделитель тоже может быть любой, как настроите - у меня как видите запятая, что у Вас - не известно, но скорее всего ";".

А как вывести все адреса стандартной формулой  -я не знаю, да и так много думаю не выведет никто. Тут UDF нужно писать.
 
Цитата
fuzzlo пишет:
Если возможно все, то можно все адреса.
Например, три первых символа это 10. - и адреса ВСЕХ найденных совпадений в ОДНУ ячейку?
 
Цитата
Юрий М пишет:
Например, три первых символа это 10. - и адреса ВСЕХ найденных совпадений в ОДНУ ячейку?
Давайте, возьмем больше знаков. Не 3, а 6.
Цитата
и адреса ВСЕХ найденных совпадений в ОДНУ ячейку?
можно разбить по столбцам. Это не принципиально.
 
Принципиально. У меня нет столько столбцов!
Формулами не умею...
 
По поводу знаков, так нужно? Формула Hugo, только по-русски.
Изменено: Smiley - 15.04.2014 15:16:32
Учусь программировать :)
 
У меня вопросы. На скрине я пометил их. В общем логика ясна и похоже на тот результат, который мне нужен. Только вопросы, которые на скрине я пометил остаются пока. Расскажите, пожалуйста?
http://prntscr.com/3a6o2s
 
Первое.
Код
$A$1806
$A - зафиксированный столбец в адресе;
$1806 - зафиксированная строка в адресе.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
HUGO:Вставлять нужно уметь! Не нужно бездумно вставлять как попало!

Трудно с этим не согласиться...
 
Цитата
fuzzlo пишет:
У меня вопросы. На скрине я пометил их.
К сожалению, в данный момент могу скачивать только отсюда.
Учусь программировать :)
 
А вот и адреса - ну пусть будет 33-я модификация кода...

Код
Function VLOOKUPCOUPLE33(Table As Variant, SearchColumnNum As Integer, SearchValue As Variant, _
                         RezultColumnNum As Integer, Separator_ As String)
'Table - таблица, где ищем
'SearchColumnNum - столбец, где ищем
'SearchValue - данные, которые ищем
'RezultColumnNum - колонка, откуда берём результат
'Separator_ - разделитель

    Dim i As Long
    Set Table = Intersect(Table.Parent.UsedRange, Table)
    For i = 1 To UBound(Table.Value)
        If Table(i, SearchColumnNum) Like SearchValue Then
            If VLOOKUPCOUPLE33 <> "" Then
                VLOOKUPCOUPLE33 = VLOOKUPCOUPLE33 & Separator_ & Table(i, RezultColumnNum).Address
            Else
                VLOOKUPCOUPLE33 = Table(i, RezultColumnNum).Address
            End If
        End If
    Next i
    If VLOOKUPCOUPLE33 = 0 Then VLOOKUPCOUPLE33 = ""
End Function
Код в модуль, а в ячейку например

Код
=VLOOKUPCOUPLE33(A:A,1,LEFT(B2,$C$2) & "*",1,"|")
 
Разделитель аргументов мой! Переводить только LEFT()!
 
Макрос.
 
Круто. Спасибо.
Страницы: 1
Наверх