Здравствуйте форумчане! Есть текстовый столбец B (модели принтеров) в котором могут добавляться или меняться значения; и текстовый столбец C с соответствующими значениями (соответствующий картридж для данной модели принтера). При добавлении/изменении принтера если он уже есть в столбце B, справа от него должен появится соответствующий картридж, иначе пусто и тогда мы вручную заполним название картриджа. Т.е. необходима формула в столбце E, которая будет искать введёное/исправленное значение ячейки столбца B (в дальнейшем искомое) во всём столбце B, кроме самой себя. При нахождении такой ячейки скопировать содержимое соседней с ней ячейки из столбца C и вставить на место соседней с искомой ячейки в столбец С. Если не найдено то соседняя с искомой ячейка в столбце С очищается.
P.s. у меня всё время возникали проблеммы с поиском - формула искала только до искомой ячейки, а ведь изменения могут быть и в начале и в середине. Office 2013.
Здравствуйте форумчане! Есть текстовый столбец B (модели принтеров) в котором могут добавляться или меняться значения; и текстовый столбец C с соответствующими значениями (соответствующий картридж для данной модели принтера). При добавлении/изменении принтера если он уже есть в столбце B, справа от него должен появится соответствующий картридж, иначе пусто и тогда мы вручную заполним название картриджа. Т.е. необходима формула в столбце E, которая будет искать введёное/исправленное значение ячейки столбца B (в дальнейшем искомое) во всём столбце B, кроме самой себя. При нахождении такой ячейки скопировать содержимое соседней с ней ячейки из столбца C и вставить на место соседней с искомой ячейки в столбец С. Если не найдено то соседняя с искомой ячейка в столбце С очищается.
P.s. у меня всё время возникали проблеммы с поиском - формула искала только до искомой ячейки, а ведь изменения могут быть и в начале и в середине. Office 2013.forumyurok
Сообщение отредактировал forumyurok - Понедельник, 08.07.2024, 15:36
Спасибо за оперативный ответ-Вы всё правильно поняли, но возможно ли тоже самое без отдельного создания "База!" Допустим в таблице есть один устаревший принтер, и если я его удалю из ячейки столбца B, то и в базе он мне и в дальнейшем не нужен (честно говоря если можно без неё, то и хорошо)
А если нельзя, то согласно условию если такого принтера нет в столбце B, то ячейка справа от искомой (в столбце C) должна очищаться, а там :"нет в базе" (в столбце с формулами тоже-но это результат окончания Вашей формулы (исправил на """))
Спасибо за оперативный ответ-Вы всё правильно поняли, но возможно ли тоже самое без отдельного создания "База!" Допустим в таблице есть один устаревший принтер, и если я его удалю из ячейки столбца B, то и в базе он мне и в дальнейшем не нужен (честно говоря если можно без неё, то и хорошо)
А если нельзя, то согласно условию если такого принтера нет в столбце B, то ячейка справа от искомой (в столбце C) должна очищаться, а там :"нет в базе" (в столбце с формулами тоже-но это результат окончания Вашей формулы (исправил на """))forumyurok
Я почему делаю акцент на формуле для одного листа (без листа База): Таблица заполняется по мере появления новых принтеров, и не нужно отдельным действием заполнять ещё и второй лист База, да ещё и следить чтобы в нём не было повторения - актуально для большого объёма данных(парка принтеров/картриджей).
АДРЕС(СТРОКА(); СТОЛБЕЦ(); 4) генерирует адрес текущей ячейки в текстовом формате, и если он совпадает с содержимым ячейки $B2, то результат будет пустой строкой. В противном случае выполняется исходная функция ИНДЕКС/СРАВНИТЬ. Это предотвратит поиск значения в самой ячейке, в которой находится формула. Но походу не предотвращает, как я и упоминал Выше - т.е. ищет только до самой искомой ячейки...
Я почему делаю акцент на формуле для одного листа (без листа База): Таблица заполняется по мере появления новых принтеров, и не нужно отдельным действием заполнять ещё и второй лист База, да ещё и следить чтобы в нём не было повторения - актуально для большого объёма данных(парка принтеров/картриджей).
АДРЕС(СТРОКА(); СТОЛБЕЦ(); 4) генерирует адрес текущей ячейки в текстовом формате, и если он совпадает с содержимым ячейки $B2, то результат будет пустой строкой. В противном случае выполняется исходная функция ИНДЕКС/СРАВНИТЬ. Это предотвратит поиск значения в самой ячейке, в которой находится формула. Но походу не предотвращает, как я и упоминал Выше - т.е. ищет только до самой искомой ячейки...forumyurok
Сообщение отредактировал forumyurok - Среда, 10.07.2024, 12:24
forumyurok, мы не знаем как заполняется ваша таблица, файл пример вы не приложили. DrMini, предложил свой вариант, но повашим ответам что-то не угадал. Приложите свой файл и тогда уже будем плясать от него
прописываем в C2 и протягиваем вниз. Затем заполняем значениями сверху, затирая формулу.
[offtop]и формулу приведите в порядок согласно правилам форума.[/offtop]
Выделяете формулу и жмёте на выделенный значок
forumyurok, мы не знаем как заполняется ваша таблица, файл пример вы не приложили. DrMini, предложил свой вариант, но повашим ответам что-то не угадал. Приложите свой файл и тогда уже будем плясать от него
прописываем в C2 и протягиваем вниз. Затем заполняем значениями сверху, затирая формулу.
А эти значения сверху затирающие формулу удаляют всю суть задачи/формулы своим затиранием. Ведь если я изменяю в столбце B (в начале/середине/конце) принтер и такой нововведёный принтер у меня в этом столбце уже есть, то картридж ему соответствующий должен подтянуться по формуле (которую мы благополучно затёрли (в начале/середине/конце)... Потому в моём варианте формула в столбце E.
прописываем в C2 и протягиваем вниз. Затем заполняем значениями сверху, затирая формулу.
А эти значения сверху затирающие формулу удаляют всю суть задачи/формулы своим затиранием. Ведь если я изменяю в столбце B (в начале/середине/конце) принтер и такой нововведёный принтер у меня в этом столбце уже есть, то картридж ему соответствующий должен подтянуться по формуле (которую мы благополучно затёрли (в начале/середине/конце)... Потому в моём варианте формула в столбце E.forumyurok
Сообщение отредактировал forumyurok - Среда, 10.07.2024, 12:47
формулу из #9 вставьте в E2 и протяните вниз. кстати у вас для hp 1010 не введен картридж в строке 12 формула для всех этих принтеров проставит 0, т.к. ориентируется на первую модель в списке. Блин, уже появился столбец А и добавление происходит не в конец, а в соответствии с этим столбцом. Тогда мой вариант не подходит А что это у вас
формулу из #9 вставьте в E2 и протяните вниз. кстати у вас для hp 1010 не введен картридж в строке 12 формула для всех этих принтеров проставит 0, т.к. ориентируется на первую модель в списке. Блин, уже появился столбец А и добавление происходит не в конец, а в соответствии с этим столбцом. Тогда мой вариант не подходит А что это у вас
Код
СРАВНИТЬ(B2; $B$2:$B$50; 0)
я такую функцию не знаю. Может ПОИСКПОЗ() надо?bigor
Сообщение отредактировал bigor - Среда, 10.07.2024, 12:55
СРАВНИТЬ внутри ИНДЕКС определяет позицию из которой ИНДЕКС должен вернуть значение из диапазона $C$2:$C$50. Если значение в B2 найдено, то ИНДЕКС возвращает соответствующее значение из этого диапазона. Если СРАВНИТЬ возвращает ошибку (то есть значение не найдено), функция ЕСЛИОШИБКА заменяет ошибку пустой строкой (“”). Можно конечно при надобности и ПОИСК'омПОЗ заменить.
кстати у вас для hp 1010 не введен картридж в строке 12 формула для всех этих принтеров проставит 0, т.к. ориентируется на первую модель в списке.
Я на этой строке обычно тестирую, и моя формула доходя до неё останавливается - а так как ранее такого принтера не было она затирает ячейку с картриджем, несмотря на то что далее такой принтер есть - т.е. к сожалению останавливает свою работу на искомой ячейке.
СРАВНИТЬ внутри ИНДЕКС определяет позицию из которой ИНДЕКС должен вернуть значение из диапазона $C$2:$C$50. Если значение в B2 найдено, то ИНДЕКС возвращает соответствующее значение из этого диапазона. Если СРАВНИТЬ возвращает ошибку (то есть значение не найдено), функция ЕСЛИОШИБКА заменяет ошибку пустой строкой (“”). Можно конечно при надобности и ПОИСК'омПОЗ заменить.
кстати у вас для hp 1010 не введен картридж в строке 12 формула для всех этих принтеров проставит 0, т.к. ориентируется на первую модель в списке.
Я на этой строке обычно тестирую, и моя формула доходя до неё останавливается - а так как ранее такого принтера не было она затирает ячейку с картриджем, несмотря на то что далее такой принтер есть - т.е. к сожалению останавливает свою работу на искомой ячейке.forumyurok
Сообщение отредактировал forumyurok - Среда, 10.07.2024, 13:49