Excel1
Для людей, придающих заводские номера изделиям/устройствам, начинающиеся на ноль, подготовлен специальный котел с заводским номером 000ОО3ЗIlШ-8BВ.
Для людей, придающих заводские номера изделиям/устройствам, начинающиеся на ноль, подготовлен специальный котел с заводским номером 000ОО3ЗIlШ-8BВ.
проблема в функции ВПР, она ни хрена не работает, пока цифры не переведёшь в формат цифр (тогда убирает 0 в начале). Постоянная проблема с изменением цен в прайсе через ВПР если артикул начинается на 0... беда просто, если кто знает ответ, буду премного благодарен...
Впр "лечится" двойным отрицанием (как по мне, оч изящное решение: прямо перед формулой после знака "равно" поставить два минуса подряд)
Именно. Разные артикулы (000091 и 91) нужно найти в списке артикулов. Если применить --, то в обоих случаях будет искаться одно и то же число
Можно сделать соседнюю колонку СЧЕТЕСЛИ с закрепленном диапазоне и плавающим концом для искомых ячеек, потом ВПРить (лучше ИНДЕКС+ПОИСКПОЗ, намного удобнее) связку артикул и получившийся счет.
ИНДЕКС+ПОИСКПОЗ не всегда намного удобнее, порой даже вреднее и, при количестве строк десятки тысяч и более, даже сильно тормознее.
Можно скрин? Не представляю себе, каким образом одна и та же функция, получив одни и те же входные данные, выдаст разный результат
Лучше нормальными штатными стредствами воспользоваться и превратить число в строку ТЕКСТ(число, формат).
Я очень не согласен, но я опять же не испльзую Excel как профессиональный инструмент. Я считаю, что явное преобразование лучше описывает, что происходит и помогает пониманию.
Это тоже явное преобразование. Разница в том, что в моём случае всё происходит на уровне обработки строки windows, а в твоём вызывается отдельный процесс на функцию. Т.е. через &"" ещё на этапе распознавания значения ячейки всё записывается как string. А в случае функции сначала как число, потом передаётся на обработку в функцию и только потом как текст. Т.е. в любом нормальном языке программирования я всеми руками за явные преобразования и т.д. Так как в 99% случаев он как раз таки просто меняет описание, не залезая даже в память что бы найти значение переменной. Но Excel довольно специфическая по архитектуре штука и частично работает на базовый модулях windows, которые очень быстрые, частично на качественно встроенных функциях, а частично на чистом VBA. Как именно ТЕКСТ я не помню, но это всё равно медленнее чем базовые wibdows.
=VLOOKUP(TEXT(123, "00000"),A1:B4,2), работает, находит то, что я ожидал оно найдет.
Но буду честен, не пользуюсь Excel в профессиональных целях.
если артикул не начинается с 0 то я тоже делал умножение на 1, НО есть артикул, пример 0789 цена 100 и арт 789 за 3000тр, и впр поменяет на 3000 если умножить на 1, а нам то нужно подставить 0789 за 100р, в этом трабл. почему так, не спрашивайте, поставщик продуктов так мудрит.
Не понял. Есть 2 таблицы. Назовём исходной и ценовой. Если в ценовой артикулы 001 и 1 это разные - тогда да, будут проблемы. Особенно если в ценовой часть данных сохранено как текст, а часть как цифры. Если же ситуация по проще, то есть по сути 2 варианта:
1) В ценовой цифры, в исходной текст - используем умножение на 1.
2) В ценовой текст, в исходной цифры - используем сопряжение с пустой строкой. В рамках Excel это делается максимально просто, через &"".
А вот если начинаются приколы вроде часть данных так, часть так и т.д... В большинстве случаев вопрос решается либо тупо через ручную обработку задвоений, либо через изменение параметров выгрузки, что бы не было проблем с двойным форматом данных.
Совершенно верно, функция ВПР не спутает текст 000079 с числом 79. Но, легко лажанёт пользователь при вводе текста 000079.
Отлично она работает с текстом, он не работает, когда у вас текст в колонке, где ищите, а то что ищите - число, или наоборот. Форматирование колонок при отом не помогает, нужно конвертировать, и лучше обе колонки в текст, так надёжнее.
У ВПР есть только одна проблема - не надо её использовать совсем и никогда.
Будте профессиональнее.
Сочетание Индекс и Поискпоз полностью решает проблему работы с данными в таблице.
ВПР в примере выше не сработает, так как ВПР ищет только "вправо" и он просто не выведет Номер и Имя. Индекс тут нужен, так как нужные нам критерии в середине таблицы.
Если бы "Артикулы" были первым столбцом, то ВПР справился бы.
Другой нюанс в скорости работы, ВПР на больших объемах данных быстрее отрабатывает, чем массив. У ВПР скорость в ущерб гибкости, а у Индекса хорошая гибкость, но в ущерб скорости.
Познал это на своем опыте, когда нужно было ковырять несколько табличек на ~200 000 строк каждая и выводить разные штуки оттуда, компуктеру было прям тяжеловато... Аж приходилось вывод данных в отдельный файл экселя делать, ибо файл со всеми данными переваливал за 20мб с формулами, расчетами и зависимостями - это боль.
О, да. И еще диапазон щелкать чисто по колонке, исходный и просматриваемый, скорость в разы растет: типа так, без цифрового диапазона
Впр лечиться тем, что искомое значение должно быть того же типа что и значения в диапазоне для поиска. Т.е. если у тебя текст искомых, то и текст должен передаваться в ВПР. Чтобы передать строку в ВПР надо:
1. Если значение береться из ячейки с вводимым значением: выставить тип данных
2. Если значение указывается в формуле напрямую: взять в кавычки.
3. Если значение вычисляется или берется из таблицы где нельзя изменить тип (но там вы не сможете хранить одновременно 00091 и 91) воспользоваться функцией ТЕКСТ, в которой можно даже указать какой ширины должно быть число и сколько нулей нужно дописать.
А что, если поставить решетки перед серийниками или взять эти серийники в квадратные скобки, ВПР работать перестанет?
По строкам ВПР тоже работает. Не работает, если заставлять его искать числа по строкам или наоборот. Если нужно разгрести один раз, добавьте перед кодами любой нецифровой символ (' - одиночная кавычка, вроде, ёкселю родная для такого). Если же данный вид секса у вас регулярный, то очень рекомендую освоить какой-нить firebird + ibexpert или mysql/mariaDB + DBeaver, напишите в них запросов и процедур на нормальном SQL и PL/SQL, а ёксель пользуйте только для эпизодической загрузки данных (формирование insert`ов), все макросы фтопку.
У меня уже не раз случалось так, что в файле произвольно менялся формат ячеек. Закрываешь файл — всё нормально, открываешь — там сотни строк в формате "дата"...
Не, это происходит, если в системе указана запятая в качестве разделителя целой и дробной части числа, а в данных используется точка. Тогда эксель меняет все такие записи с точкой на даты. У меня это постоянная проблема, бесит неимоверно, а отключить никак нельзя (только если поменять разделитель в системе на точку, но тогда будут проблемы с данным, где запятая)
Не будет проблемы, ёксель помнит значение ячейки, а разделители подставляет в соответствии с региональными настройками
Европа, если что, тоже использует запятую. И это причина, по которой я не меняю разделитель на точку - у моих коллег и начальников стоит запятая, и никто не будет рад, если у них начнутся проблемы с файлами, созданными мной. Заставлять всех менять запятую на точку - это уже за рамками данного обсуждения)
Да и вообще, меня по большей степени бесит факт того, что кто-то (разработчики Экселя) за меня решил, видимо, что это жутко удобно, и альтернативные точки зрения не рассматриваются (=нельзя отключить).
Хм, а вот это интересно, я как-то не подумала об этом. Думала, что если сохраню с точкой, то и у них откроется с точкой. Спасибо!!
Да хер там, в Европе полно запятых. И если в екселе они от них отказались, то во всяких банковских и налоговых приложениях они во всю запятую используют. И это ещё больший пиздец, потому что на цифровой клаве у них там точка, и еще никогда заранее не знаешь, с каким разделителем тебе отделять дробную часть.
Только если открывать какой нить csv, если открывать Excel файл, то он ниче не меняет. А если с csv есть проблема, то нужно его не открывать, а импортировать данные, тогда можно задать форматы колонок и исправить проблемы в различии рениональных настроек.
А шо, поможет? Это же не сразу происходит. На экране всё в порядке, у всех ячеек выставленный формат, у новых ячеек формат по умолчанию... Сохранил, закрыл файл, открыл заново (а иногда просто открыл) — вся книга в формате "проценты"... Здравствуй жопа, Новый год. Конечно, разумеется не какой-то конкретный файл и не каждый раз — таким, рандомом приятным, украсить рабочий день.
Тут на пикабу где-то писали, что можно отключить автозамену на дату, но у меня почему-то такой опции нет. Поискала еще в интернете, тоже пишут, что это нельзя отключить
Бесит!
3.2K поста3.3K подписчиков
Правила сообщества
Не бесите других людей! Помните, им и так тяжело.
Соблюдайте общие правила пикабу.