Страницы: 1
RSS
Работа с формулой ИНДЕКС и ПОИСКПОЗ
 
Всем привет!
Подскажите пожалуйста как можно усовершенствовать формулу:
Код
=ЕСЛИ(ЕПУСТО('Данные'!N31);"";ИНДЕКС(Таблица7[2];ПОИСКПОЗ('Данные'!N31;ЗНАЧЕН(Таблица7[3]);0)))

Для удобства и быстроты работы с данными начал использовать в работе данную формулу. Суть в чем, по номеру, который ввожу в ячейке N31 получаю необходимые сведения  в ячейке O31 из таблицы, которая содержит накопительную информацию.
Все работает, проблем нет. Но вот незадача, как только в таблицу попадают новые данные, то происходит смещение и номер который соответствовал, к примеру бананам, теперь относится к яблокам. И в ячейке вместо бананов я получаю яблоки, соответственно вся информация искажается.
Возможно ли сделать так, чтобы при смене номера, в случае добавления новых данных в таблицу, информация в ячейке O31 не менялась?
Спасибо.
 
graffserg,
здравствуйте, приложите файл-пример
 
Цитата
evgeniygeo написал:
приложите файл-пример
файл тут не на столько нужен, сколько описание того что делается, ибо что есть номер? Если это уникальный идентификатор, то почему он вдруг меняется в новых данных, если номер по порядку, то тоже не должно влиять. Иными словами, формула совершенно не при делах.
По вопросам из тем форума, личку не читаю.
 
Возможно, при добавлении новых данных происходит сортировка. Вам нужно либо ввести уникальный ID который будет перемещаться вместе с данными, либо (если это вообще возможно) выделить минимальный набор столбцов позволяющих идентифицировать конкретную строку и вести поиск по этому сочетанию (например сконкатенировав  их).
 
Всем привет! Извиняюсь, что долго не отвечал. Постараюсь объяснить.
1. Своего рода это уникальный (номенклатурный) номер, который присваивается при добавлении позиции в умную таблицу.
2. Я начал присваивать данный уникальный номер с целью оптимизации и ускорения работы на соседних листах - ввел номер и в соседней ячейке автоматически заполняется наименование и т.д.
3. Есть но, данный номер постоянно меняется, так как в таблицу постоянно вносятся новые данные, но для меня это не критично.
4. Проблема в том, что есть данные, которые мне нужны для учета статистики по продажам и вот здесь произошла засада - поменялся номер и поменялись данные, а мне нужно чтобы эти данные остались.
К примеру:
.....
- свекла, ее номер 1100003;
- морковь, ее номер 110004 и т.д.

И вот если перед свеклой вставить новые данные, то уникальный номер измениться:
.....
- свекла, ее номер 1100004;
- морковь, ее номер 110005 и т.д.

А мне нужно, чтобы морковь осталась, а номер не столь важен.

Понимаю, что масло масленное. Только вот решения найти не могу, вот и пришла в голову данная формула, но она оказалась не рабочей, точнее рабочей, только я что-то упускаю.

Я даже знаю в чем косяк - данная формула будет выводить сведения, которые соответствуют введенному номеру.

Надеюсь на Вашу помощь.
Изменено: graffserg - 19.03.2024 19:31:21
 
Цитата
graffserg написал:
К примеру:.....- свекла, ее номер 1100003;- морковь, ее номер 110004 и т.д.И вот если перед свеклой вставить новые данные, то уникальный номер измениться:.....- свекла, ее номер 1100004;- морковь, ее номер 110005 и т.д.
Вам бы архитектором в 1с  с этим :-)

Уникальный идентификатор на то и уникальный, чтоб однозначно идентифицировать объект не только настоящем, но и в прошлом и будущем. Нельзя найти бабушку, если она стала дедушкой.

Ну или должен быть справочник который актуальный на каждый момент времени.
Изменено: БМВ - 19.03.2024 19:37:10
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Вам бы архитектором в 1с  с этим :-)
Согласен, я бы навел "порядок".

Тогда еще один вопрос. Я использую формулу:
Код
=ЕСЛИ(ИЛИ(ЕПУСТО(B55));"";"12"&ТЕКСТ(A55;"00000"))

которая присваивает этот "уникальный" номер.

А можно, так сказать, зафиксировать (заморозить) данный номер именно за этим наименованием? На подобии как здесь:
https://www.planetaexcel.ru/techniques/6/44/
или вот
Код
=ЕСЛИ([@2]="";"";ЕСЛИ(F10="";ЕСЛИ([@2]="";"";ТДАТА());F10))

я использую эту формулу для фиксации даты первоначального ввода данных.

А с номером можно такое проделать?

Спасибо.
 
Цитата
graffserg написал:
которая присваивает этот "уникальный" номер.
а что в A55?

И
ИЛИ(ЕПУСТО(B55)) - ИЛИ там точно лишнее.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
а что в A55?И ИЛИ(ЕПУСТО(B55)) - ИЛИ там точно лишнее.

Это все работает. Формулу взял из рабочего варианта книги (там куда мышка приземлилась), вот по этой причине и появилась A55.
 
Цитата
graffserg написал:
Это все работает. Формулу взял из рабочего варианта книги
это не означает что ИЛИ вставлено напрасно. Уберите , результат будет аналогичен
А про
Цитата
БМВ написал:
а что в A55?
я не зря спрашивал. Что за значение там и как оно получено?
По вопросам из тем форума, личку не читаю.
 
Добрый день!
Цитата
БМВ написал:
Что за значение там и как оно получено?
В A55 формула порядкового номера:
Код
=(B55<>"")*СЧЁТЗ($B$5:B55)
 
Еще раз всем привет!
Проанализировав вышенаписанное и методом проб доработал формулу:
Код
=ЕСЛИ([@1]="";"";ЕСЛИ(C5="";ЕСЛИ([@1]="";"";"11"&ТЕКСТ(A5;"00000"));C167))


Но проблема осталась. Понимаю, что:
1. Уникальный номер формируется при помощи нумерации в столбце А.
Соответственно, если нумерация меняется, то и меняется уникальный номер.

2. Для решения моей задачи необходимо зафиксировать/застолбить данный уникальный номер за вновь введенной позицией в умной таблице, чтобы в последующем однозначно идентифицировать объект не только настоящем, но и в прошлом и будущем.

И в данной ситуации для меня не критичным будет как он, этот уникальный номер, будет идти в таблице в нарастающем итоге или как-то по другому.

Вот нашел тему, вроде подходит, но под себя так и не смог подогнать

Тема по генерации номера

Пробовал вот эту формулу:
Код
=ИНДЕКС(Ном_док;ПОИСКПОЗ(C8;Тип_док;0))&ТЕКСТ(СЧЁТЕСЛИ(C$1:C7;C8)+1;"-000")&ТЕКСТ(B8;"\/ГГ")

но увы..

Спасибо.
 
Еще раз всем привет!
Вот,
Код
=ПРАВБ(СУММПРОИЗВ(КОДСИМВ(ПСТР(B6;СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(B6)));2))^3;СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(B6))));8)

нашел на просторах формулу, которая присваивает уникальный номер.
Помогите пожалуйста, если есть такая возможность, доработать ее так, чтобы:
- нумерация шла нарастающим порядком (11000001, 11000002 и т.д.);
- была возможность присвоить начало, с которого будет начинаться номер (11....., 12....., 19..... и т.д.).
Спасибо.
 
graffserg,  Вы путаете понятие уникального идентификатора и номера по порядку. Второе  может быть первым, но в пределах одной очереди. ну представьте улицу с номерами домов. если пристраивают дом то дают дополнительный номер  корпус, строение.. но не меняют номера домов сдвигая или не ставят 25й дом рядом с 11ым и 13ым..  
Последняя найденная формула генерит число равное сумме кодов букв. уникально ли оно будет - ну чем больше выборка тем больше шанс получить одинаковое число при разных фразах. своего рода это хэш функция которая позволяет сказать что да, там было такое, но не позволяет сказать что было именно.
Предыдущая - там также есть завязка на порядок  и применительно к той теме из которой взято, порядок не меняется , в отличии от вашего случая.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Предыдущая - там также есть завязка на порядок  и применительно к той теме из которой взято, порядок не меняется , в отличии от вашего случая.

Ок. Тогда подскажите пожалуйста, или дайте направление в котором я бы смог с помощью формулы/макроса ПРИСВОИТЬ и ЗАСТОЛБИТЬ за наименованием, введенным в умную таблицу, УНИКАЛЬНЫЙ номер.

Так, чтобы:
- нумерация шла в нарастающем порядке (11000001, 11000002 и т.д.). И даже если я введу новое наименование в середину таблицы, то номер бы не сдвигался, а присваивался следующий, т.е. с помощью формулы происходил бы пересчет номера и присваивался следующий;
- была возможность присвоить цифровой или буквенный код, с которого будет начинаться номер (11....., 12....., 19..... и т.д.). Это своего рода индекс, т.к. пользуюсь разными таблицами и чтобы по номеру было легче определить наименование присваиваю ему код, например 11....., 12..... и т.д.
Спасибо.
 
Всем привет!
Хочу тему поднять еще раз.
Вот, на форуме нашел тему:
Генерация номер

Вот собственно и сама формула, которую я вставил в свою умную таблицу:
Код
=ЕСЛИ(ИЛИ(ЕПУСТО(B5));"";ТЕКСТ(ПРАВСИМВ(СУММ(КОДСИМВ(ПСТР([@2];СТРОКА(ДВССЫЛ("a1:a"&ДЛСТР([@2])));1))^3);7);"11-00000"))


Вроде все работает, но есть один вопрос - возможно ли сделать так, чтобы номер присваивался нарастающим порядком...., т.е. то, что писал выше
Цитата
graffserg написал:
- нумерация шла в нарастающем порядке (11000001, 11000002 и т.д.). И даже если я введу новое наименование в середину таблицы, то номер бы не сдвигался, а присваивался следующий, т.е. с помощью формулы происходил бы пересчет номера и присваивался следующий.
Спасибо.
Страницы: 1
Наверх