Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
VBA Поиск в строке ссылки на ячейку и замена значения из этой ссылки
 
Не знаю как этот макрос адаптировать.

У меня есть файл, который содержит ячейки типа тех, что я указывал в 1 посте. Это просто значение. напротив них ссылка на файл, я отрываю этот файл и забираю данные из этих ячеек


Т.е. если в ячейке указанно H15, я открываю файл и из него забираю из этой ячейки данные. Это легко
Но если в ячейке указано это G15 / F10 или это (G15 + 10) / I5, то мне нужно открыть файл найти значения в ячейках G15, F10 и I5 и сделать вычесления по формуле. или хотя бы подставить.
Я не могу понять как и строчного значения найти все ссылки на ячейки  
Изменено: Александр - 19 Фев 2020 10:39:08
VBA Поиск в строке ссылки на ячейку и замена значения из этой ссылки
 
Коллеги, добрый день.
Подскажите, как сделать такую вещь:
Есть ячейки с значениями:
H15
G15 / F10
(G15 + 10) / I5

Мне нужно понять в каждой ячейке где ссылка и забрать по этой ссылке значение и вставить в формулу

Предположим G15 хранит значение 10, а I5 хранит 2

По последнему варианту мне надо выдать 10
(10 + 10) / 2
Если разрыв >24 часов, то нумерацию начать с единицы
 
Не жмите бездумно на кнопку цитирования.
Не пишите через строку
[МОДЕРАТОР]

В целом работает, решение классное. Странно, что я изначально не додумался до этого.

Но на боевом файле не корректно сработал. Приложил пример где работает неккоректно. К сожалению приложить полный боевой файл не могу из-за соображения, что имеются конф информация. В файле 170к строк :)
Если разрыв >24 часов, то нумерацию начать с единицы
 
Надеюсь данный пример понятнее будет :)

Спасибо
Изменено: Александр - 2 Окт 2019 09:59:58
Если разрыв >24 часов, то нумерацию начать с единицы
 
Цитата
Сергей написал:
пробуйте
Интересное решение. А если номера разные?) Т.е. надо еще по номерам группировать

Я написал конечно макрос под это дело, но чисто академический интерес как это можно сделать функциями экселя :)
Код
Private Function Numeric_By_Groups()
    
    Application.ScreenUpdating = False
    
    Dim r As Long, _
        LastRow As Long, _
        MemDate As Date, _
        Iterator As Long
    
    Iterator = 1
    
    Columns(8).Clear
    
    With ActiveSheet.UsedRange
        LastRow = .Rows.Count - .Row + 1
    End With
    
    For r = 2 To LastRow
        With Cells(r, 2)
            If Not .Value = .Offset(-1, 0).Value Then
                Iterator = 1
                MemDate = .Offset(0, 2).Value
                .Offset(0, 6).Value = Iterator
            End If
            
            If .Value = .Offset(1, 0).Value Then
                If DateDiff("h", MemDate, .Offset(0, 2).Value) < 24 Then
                    Iterator = Iterator + 1
                    .Offset(1, 6).Value = Iterator
                Else
                    Iterator = 1
                    MemDate = .Offset(1, 2).Value
                    .Offset(1, 6).Value = Iterator
                End If
            Else
                .Offset(1, 6).Value = Iterator
            End If
        End With
    Next r
    
End Function
Изменено: Александр - 2 Окт 2019 08:22:17
Если разрыв >24 часов, то нумерацию начать с единицы
 
Цитата
Сергей написал:
почему нумерация не прервалась тут явный разрыв больше суток
Опечатался, вы верно все подметили

Исправил в примерах
Изменено: Александр - 2 Окт 2019 08:09:24
Если разрыв >24 часов, то нумерацию начать с единицы
 
Всем добрый день. Не могу сообразить как сделать такую вещь:
Имеется список номеров с датой и временем.

Нужно пронумировать их по группе "Номера" и по условию. Если от 1 номера у последующих номеров прошло менее 24 часов, то нумирация идет в обычном режиме 1, 2, 3, 4 и тд. Но если более 24 часов, первый же номер после этой отметки будет так же первым и последющие будут сравниваться уже с ним.
79999999999 18.09.2019 16:07 1
79999999999 18.09.2019 17:10 2
79999999999 18.09.2019 17:17 3
79999999999 20.09.2019 17:18 1
79999999999 20.09.2019 17:19 2
79999999999 22.09.2019 17:21 1
79999999999 25.09.2019 17:21 1
Своими силами сделать не выходит, надеюсь смог более менее понятно описать. Файл во прилагаю
Изменено: Александр - 2 Окт 2019 08:08:04
Проверка значения по маске
 
Цитата
Светлый написал:
Предполагаю, что такая массивная формула поможет:
И правда, на примере работает.
Буду разбирать как она работает

Позже потестирирую на исходнике. Спасибо большое

Если не сложно, Вы можете разбить формулу с пояснениями?
Проверка значения по маске
 
Цитата
Ігор Гончаренко написал:
1. какие есть маски?
Их очень много.

И вариации разные, чуть ли не 999AAAAAAA

Цитата
Ігор Гончаренко написал:
2. по каким соображениям тот или иной номер относится к той или иной маске
Под буквой может быть любая цифра, но если буква в маске повторяется тогда там дублируется и цифра

т.е. Маска 999AAA0000
Под нее подходят такие номера 9990000000, 9991110000, 9992220000, 9993330000 и тд

Маска 999AEA0000
Под нее подходят такие номер 9991210000, 9992129999, 9991319999, 9996460000 и тд

Цитата
Ігор Гончаренко написал:
3. что в маске 999FFACCG2 делает буква G?
Не могу дать ответ. В источнике как я понял вообще рандомные буквы, но самое главное что быква хранит число от 0 до 9

Вот еще пару примеров из источника: 99900CCEEE, 999A23456A, 999ABBAAAB и тд
Проверка значения по маске
 
Господа, добрый день.

Подскажите как можно сделать. Есть список масок номеров
Пример:
999FFA3211Категория 2
999FFACCG2Категория 3
Есть список номеров:
9993340012
9991143211
Мне нужно по номеру понять к какой категории он относится исходя из тех масок, что есть
т.е. первый номер это категория 3
Второй номер это категория 2

Есть ли решение без VBA?
Проверка двух столбцов со смещением и вставка данных при соответствии
 
Цитата
Ігор Гончаренко написал: осталось описать условия задачи
Два столбца имеется, у них случается так, что строки не равны. В том столбце где строка не ровна, т.е. отсутствует значение нужно сделать смещение как правило на одну строку вниз дабы уровнять их

Я просто честно говоря затрудняюсь подробно описать суть проблемы. Это грубо говоря две выборки и в одной из них бывают пропущены значения
Проверка двух столбцов со смещением и вставка данных при соответствии
 
Цитата
Юрий М написал:
Может ВПР поможет?
Номера не уникальны, он может появиться еще где-то ниже по столбцу. Бывает даже два подрят и это скорей всего вызовит сбой
Попробую потестить  
Проверка двух столбцов со смещением и вставка данных при соответствии
 
Доброго времени суток.

Появилась такая задача: Имеется два столбца, бывает так, что в одном столбце значения не на одном уровне(К примеру в первом столбце отсутствует значение), тогда во втором столбце мы пропускаем строку со спуском вниз
Если делать формулой как сделал я, нужно прописать очень маштабно, так как с каждым спуском диапазон увеличивается. Я пытался сделать пока один столбец, но по условию значение может отсутвовать как в первом так и во втором столбце и исходя из этого, необходимо делать спуск чтобы их уровнять.

Придумать как оптимизировать подход - я не смог.

Описание водянистое, надеюсь как примере будет более понятно.

И да, задачу хочу сделать без VBA :) Подскажите возможное решение, заранее благодарен
Среди не уникальных номеров найти самую позднюю дату из соседнего столбца и вставить ее в новый столбец
 
Цитата
Stics написал:
Для рандомного порядка формула корректно не отработает. Она максимальное значение даты ищет, а не последнее.
А разве есть разница?

Проверить формулу не боевом файле пока не выходит, там более 100к строк. Очень тяжело считает :)
Среди не уникальных номеров найти самую позднюю дату из соседнего столбца и вставить ее в новый столбец
 
Цитата
Сергей написал:
=МАКС(ЕСЛИ($A$3:$A$15=A3;$B$3:$B$15))
Спасибо за решение, буду разбираться :) Как-то у Вас просто вышло и быстро)
Среди не уникальных номеров найти самую позднюю дату из соседнего столбца и вставить ее в новый столбец
 
Цитата
Stics написал:
1. Даты для каждого номера всегда в хронологическом порядке располагаются?
Нет, дата может в рандомном порядке быть проставлена

Цитата
Stics написал:
2. в 14 строке таблицы для номера 6565656565 в образце дата 04.01.2019, а в желаемой таблице по той же строке 06.01.2019. Почему так?
Опечатка, предполагалось что там будет дата 06.01.2019 :)
Среди не уникальных номеров найти самую позднюю дату из соседнего столбца и вставить ее в новый столбец
 
Господа, добрый день.
Помогите решить задачу с которой сам я справиться пока не могу.

К примеру:
В первом столбце есть список номеров(Не уникальный), во втором даты.
В третий столбец нужно вставить последнюю найденную дату(Если таковая имеется) по данному номеру.

Пример во вложении чтобы было наглядно
Изменено: Александр - 23 Янв 2019 15:08:05
Условное форматирование ячеек, в которых формулы заменены значениями
 
В надстройке plex которая продается на данном сайте, есть такой функционал :)
 
Изменено: Александр - 23 Янв 2019 10:35:05
Поиск слова в тексте и по этому слову подтягивать значение(Если имеется)
 
Спасибо большое, возьму на заметку и попробую разобраться :)
Хорошего Вам дня.
Поиск слова в тексте и по этому слову подтягивать значение(Если имеется)
 
Господа, добрый вечер.

Не могу сообразить как можно сделать такую вещь
Есть лист с ячейками такого плана:
Цитата
GiGwi игрушка для   кошек Мышка с электронным чипом
игрушка для кошек Мышка гигви с   электронным чипом
На втором листе есть таблица со словами такого плана:
Цитата
ГиГвиGiGwiГиГви (GiGwi)
Нужно в ячейке на листе1 найти слово из листа2(А1 или B1) и если оно найдется, то в ячейку где формула вставить в таком формате как на листе2 в ячейке C1(ГиГви (GiGwi))

Т.е. условно просто найти слово в ячейке и если оно есть сВПРить. Сам прийти к решению не могу, поиск тоже не дал результатов. VBA не знаю.
Как найти те ячейки, которая не нашла функция СЧЁТЕСЛИМН
 
Цитата
a.i.mershik написал:
SpiRiTMooN , Мне кажется поиск других условий которые указал оператор - не очень хорошая идея.Как по мне Вам лучше самому выбрать по специфике работы то что может быть (варианты) и операторам указать вносить только те данные которые Вы укажите списком или как то иначе и тогда не будет проблем.
К сожалению пока это невозможно, поэтому и ищу возможное решение проблемы. Чтобы не тратить на это много времени.
Как найти те ячейки, которая не нашла функция СЧЁТЕСЛИМН
 
Цитата
БМВ написал:
УФ  под учтенные условия.
У меня не получилось сделать :)
Как найти те ячейки, которая не нашла функция СЧЁТЕСЛИМН
 
Цитата
a.i.mershik написал:
SpiRiTMooN ,а пример можете привести в файле?
Конечно. Вот грубый, но пример.

Желтым выделил ячейки, их кол-во должно сходится с кол-вом поступивших. Кол-во поступивших 2977, найдено у меня 2967
10 потерянных нужно найти, как я описывал выше вручную достаточно долго их искать.

Возможно я все делаю не правильно, если есть варианты как-то упростить задачу был бы благодарен :)
Как найти те ячейки, которая не нашла функция СЧЁТЕСЛИМН
 
Я так и делаю, но условий очень много и это занимает много времени. К примеру если можно при выполнении функции СЧЁТЕСЛИМН окрашивать ячейки которые были задействованы, это очень бы помогло
Как найти те ячейки, которая не нашла функция СЧЁТЕСЛИМН
 
Господа, добрый день. У меня есть таблица в которую с помощью функции СЧЁТЕСЛИМН происходит сбор информации. Бывает такое, что оператор исходные данные закрывает с другими условиями и нужно находить эти условия и добавлять в формулу.

Как это можно сделать кроме ручного поиска?) Т.е. Мне нужно найти все ячейки, которые не были посчитаны с помощью формулы СЧЁТЕСЛИМН

Надеюсь понятно описал вопрос :)
Страницы: 1
Наверх