Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/103: Рейтинг темы: голосов - 103, средняя оценка - 4.65
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
1

Как заменить ЕСЛИМН, если требуется использовать очень много условий?

30.01.2019, 08:46. Показов 19193. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня работает вот такая длинная формула:
=ЕСЛИМН(ЛЕВСИМВ(D3)="Х"; "Хлебобулочное"; ЛЕВСИМВ(D3)="Б";"Бакалея";ЛЕВСИМВ(D3)="М"; "Мясо"; ЛЕВСИМВ(D3)="Н";"Напитки";ЛЕВСИМВ(D3)="П";"Птица";ЛЕВСИМВ(D3)="Р";"Рыба";ЛЕВСИМВ (D3)="Т";"Табак")
Задача, решаемая этой формулой - подставить категорию продукта на основании первой буквы номенклатуры, т.е. Х - это Хлебобулочные, Б - это Бакалея и т.д. В принципе, всё работает.
Но если бы категорий было не 7, а 107, тогда этот способ не подошёл бы из-за неимоверной длины такой формулы.

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

Я предположил, что мне поможет в этом ПОИСКПОЗ и ДВССЫЛ, попытался применить, но тут что-то пошло не так, в общем, не могу теперь никак эту формулу в голове выстроить.

Получилась такая формула:
=ЕСЛИ(ЛЕВСИМВ(D3)=ЕСЛИ(ПОИСКПОЗ(ЛЕВСИМВ(D3);J3:J9;0)>0;ДВССЫЛ("$J"&2+ПОИСКПОЗ(ЛЕ ВСИМВ(D3);J3:J9;0));ДВССЫЛ("$K"&ПОИСКПОЗ(ЛЕВСИМВ(D3);J3:J9)))
Но она возвращает не совсем то, что нужно. Не понятно, как отследить, где там ошибка возникает

Может ли кто-то помочь тут?
Вложения
Тип файла: xlsx Пример.xlsx (13.8 Кб, 22 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.01.2019, 08:46
Ответы с готовыми решениями:

Как перезаписать значения переменых в php файле если их очень много?
Добрый день! Прошу совета у форумчан, потому что сама не смогла разобраться с такой задачей: ...

Как лучше организовать список значений, если есть очень много значений?
Есть сводная таблица, в которой есть список значений. Как лучше организовать выборку нужных...

Что делать если TextBox очень много?
В форме Access надо вводить 84 однородных текстбоксов (7 груп по 12 в каждой). При этом еще хочу...

Заменить значение если одно из условий Null
Подскажите как можно подставить значение в ячейку если одно из условий будет равно NULL В столбце...

4
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
30.01.2019, 09:00  [ТС] 2
Путь оказался верным, но иду я по нему, как-то криво, видимо. Формула даёт результат в желаемых пределах, но результаты очень не точные, по сути возвращаются рандомные категории.
На Листе 2 этот пример.
Использовал инструмент "Вычислить формулу" для просмотра пошагового выполнения, и на некоторых этапах, например ПОИСКПОЗ выдаёт какие-то с потолка взятые цифры
Вложения
Тип файла: xlsx Пример.xlsx (14.2 Кб, 18 просмотров)
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
30.01.2019, 09:20 3
Лучший ответ Сообщение было отмечено SrgKord как решение

Решение

SrgKord, в первом файле вроде бы подходит
Код
=ВПР(ЛЕВСИМВ(D3);J:K;2;)
, или я какой-то хитрости не разглядел?

Добавлено через 2 минуты
Можно и без ст. J обойтись, по первой букве искать слово
Код
=ВПР(ЛЕВСИМВ(D3)&"*";K:K;1;)
1
772 / 615 / 294
Регистрация: 05.01.2014
Сообщений: 1,338
30.01.2019, 09:27 4
Может так, второй файл не смотрел.
Код
=ВПР(ЛЕВСИМВ(D3)&"*";$J$3:$K$32;2;0)
1
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
30.01.2019, 21:12  [ТС] 5
Цитата Сообщение от Казанский Посмотреть сообщение
Можно и без ст. J обойтись, по первой букве искать слово
Точно >_< как я этого не заметил. Огромное спасибо, блин, так тупил я
0
30.01.2019, 21:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2019, 21:12
Помогаю со студенческими работами здесь

Посоветуйте, что делать если вычислений очень много
Здравствуйте, мне надо проверить 8^12 тождеств (у меня есть тождество ,зависящее от 12 индексов,...

Если при работе приложения в БД access будет очень много записей
Добрый день! Создал приложение, в котором происходит чтение и запись в БД Access. Записей может...

Как задать много условий для if?
вот код не могу понять как? procedure TForm1.Button1Click(Sender: TObject); begin if...

Если тут использовать надо много записей, то используем Массив?
program primer1; type anketa=record fio: string; dat_r: string; adres: string; ...

Какой метод лучше использовать, если у главной формы много подчиненных форм?
всем привет, вот такой вопрос для тех кто в этом имеет опыт: есть основная форма, на ней...

Какой способ хранения матрицы выбрать, если требуется делать много перестановок элементов?
Здравствуйте! У меня было задание, написать такую программу, которой надо сделать циклический сдвиг...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru