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

Вход

Регистрация

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

 

= Мир MS Excel/Распределение данных согласно условиям в одну ячейку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Распределение данных согласно условиям в одну ячейку (Формулы/Formulas)
Распределение данных согласно условиям в одну ячейку
kamaridenovag Дата: Пятница, 23.07.2021, 09:58 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте. Помогите сделать формулу или через VBA. Имеется своеобразный грид сеткой 200*200, определяемыми координатами. Примерную ячейку с координатами привела в файле, границы ячейки определяются правым верхним углом. Внутри каждой ячейки необходимо вписать названия из столбца Well согласно условиям по координатам Х и У. Н-р, показала для примера по KL_0001 и KL_0002. Хотела прописать такую формулу, чтобы по координатам выбирались значения (названия) в каждую ячейку из массива столбцы В:Е (он огромен), тут только кусочек. Поэтому в каждую ячейку грида может входить много названий. Можно через запятую (др. чем-нибудь) разграничить названия. Там дальше по названию планирую подтягивать другие данные в этих ячейках.
К сообщению приложен файл: Grid.xlsx (12.3 Kb)
 
Ответить
СообщениеЗдравствуйте. Помогите сделать формулу или через VBA. Имеется своеобразный грид сеткой 200*200, определяемыми координатами. Примерную ячейку с координатами привела в файле, границы ячейки определяются правым верхним углом. Внутри каждой ячейки необходимо вписать названия из столбца Well согласно условиям по координатам Х и У. Н-р, показала для примера по KL_0001 и KL_0002. Хотела прописать такую формулу, чтобы по координатам выбирались значения (названия) в каждую ячейку из массива столбцы В:Е (он огромен), тут только кусочек. Поэтому в каждую ячейку грида может входить много названий. Можно через запятую (др. чем-нибудь) разграничить названия. Там дальше по названию планирую подтягивать другие данные в этих ячейках.

Автор - kamaridenovag
Дата добавления - 23.07.2021 в 09:58
Nic70y Дата: Пятница, 23.07.2021, 10:43 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
ну как-то так примерно (наверное)
[vba]
Код
Sub u_257()
    Application.ScreenUpdating = False 'отключим обновление экрана
    Range("i4:ad27").ClearContents 'сотрем старые значения
    ua = 4                    'верхняя строка
    ub = Cells(Rows.Count, "b").End(xlUp).Row   'нижняя строка
    For uc = ua To ub 'проходимся циклом по Well /uc = очередня строка цикла
        ue = Range("b" & uc).Value  'значение в ячейке
        uf = Range("d" & uc) + 199  'координата X
        ug = Range("e" & uc) + 199  'координата Y
        va = Application.Match(uf, Range("3:3"), 1) 'ПОИСКПОЗ(;;ИСТИНА) X
        vb = Application.Match(ug, Range("h:h"), 1) 'ПОИСКПОЗ(;;ИСТИНА) Y
        wa = Application.IsNumber(va) 'проверим найдены ли координаты (на всякий)
        wb = Application.IsNumber(vb)
        If wa And wb Then 'если найдены, тогда
            sa = Cells(vb, va) 'значение ячейки с соот. координатами
            If sa = "" Then 'если ячейка пуста
                sb = ue
            Else 'иначе, т.е. в ячейке уже есть значение
                sb = sa & ", " & ue
            End If
            Cells(vb, va) = sb 'запишем
        End If
    Next
    Application.ScreenUpdating = True 'включим обновление экрана
End Sub
[/vba]

апдэйт: чет скучно на работе)))
решил формулами (с допами) запилить,
соот xlsx файл
К сообщению приложен файл: Grid.xlsm (21.5 Kb) · 5392046.xlsx (17.5 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Пятница, 23.07.2021, 12:08
 
Ответить
Сообщениену как-то так примерно (наверное)
[vba]
Код
Sub u_257()
    Application.ScreenUpdating = False 'отключим обновление экрана
    Range("i4:ad27").ClearContents 'сотрем старые значения
    ua = 4                    'верхняя строка
    ub = Cells(Rows.Count, "b").End(xlUp).Row   'нижняя строка
    For uc = ua To ub 'проходимся циклом по Well /uc = очередня строка цикла
        ue = Range("b" & uc).Value  'значение в ячейке
        uf = Range("d" & uc) + 199  'координата X
        ug = Range("e" & uc) + 199  'координата Y
        va = Application.Match(uf, Range("3:3"), 1) 'ПОИСКПОЗ(;;ИСТИНА) X
        vb = Application.Match(ug, Range("h:h"), 1) 'ПОИСКПОЗ(;;ИСТИНА) Y
        wa = Application.IsNumber(va) 'проверим найдены ли координаты (на всякий)
        wb = Application.IsNumber(vb)
        If wa And wb Then 'если найдены, тогда
            sa = Cells(vb, va) 'значение ячейки с соот. координатами
            If sa = "" Then 'если ячейка пуста
                sb = ue
            Else 'иначе, т.е. в ячейке уже есть значение
                sb = sa & ", " & ue
            End If
            Cells(vb, va) = sb 'запишем
        End If
    Next
    Application.ScreenUpdating = True 'включим обновление экрана
End Sub
[/vba]

апдэйт: чет скучно на работе)))
решил формулами (с допами) запилить,
соот xlsx файл

Автор - Nic70y
Дата добавления - 23.07.2021 в 10:43
kamaridenovag Дата: Пятница, 23.07.2021, 12:28 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, спасибо огромное! Получилось! Правда, не совсем понимаю ваш код, не тот уровень у меня((
 
Ответить
СообщениеNic70y, спасибо огромное! Получилось! Правда, не совсем понимаю ваш код, не тот уровень у меня((

Автор - kamaridenovag
Дата добавления - 23.07.2021 в 12:28
kamaridenovag Дата: Пятница, 23.07.2021, 13:30 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, я применяю ваш код VBA на свой огромный список координат, выходит Run-time error ошибка 13, Type mismatch
Debug показывает в строке
ug = Range("e" & uc) + 199 'координата Y

Второй способ с формулами применю тогда) спасибо!
 
Ответить
СообщениеNic70y, я применяю ваш код VBA на свой огромный список координат, выходит Run-time error ошибка 13, Type mismatch
Debug показывает в строке
ug = Range("e" & uc) + 199 'координата Y

Второй способ с формулами применю тогда) спасибо!

Автор - kamaridenovag
Дата добавления - 23.07.2021 в 13:30
Nic70y Дата: Пятница, 23.07.2021, 13:56 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
Цитата kamaridenovag, 23.07.2021 в 13:30, в сообщении № 4 ()
ошибка 13
скорей всего в Вашем файле в столбце E не числа


ЮMoney 41001841029809
 
Ответить
Сообщение
Цитата kamaridenovag, 23.07.2021 в 13:30, в сообщении № 4 ()
ошибка 13
скорей всего в Вашем файле в столбце E не числа

Автор - Nic70y
Дата добавления - 23.07.2021 в 13:56
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Распределение данных согласно условиям в одну ячейку (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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