209 похожих чатов

Доброе утро, магистры и начинающие в PQ. Подскажите, пожалуйста, дорогу

молодому.

Вопрос теоретический.

Допустим, есть конструкция.

a = Table.AddColumn(tbl, "кто украл корову", each
if [Подозреваемый] <> "Какой-то хрен"
then [Подозреваемый]
else
if [Подозреваемый] = "Какой-то хрен" and [Рост] = "маленький"
then [Предположительное место]
else
if [Подозреваемый] = "Какой-то хрен" and [Рост] = "маленький" and [Предположительное место] = "Малиновка"
then "Васька Косой"
else null)

Смысла в данной конструкции не ищите - я пытался переписать код, удаляя конфиденциальную информацию, параллельно совмещая все с анекдотом. Но суть, думаю, вам ясна. 3 if then els'а - это как-то странно, сложно и можно запутаться. Помимо всего прочего вся эта конструкция будет проходить через каждую строчку из таблицы, тем самым сильно тормозя процесс.

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

Заранее благодарю за ответ!

P.s. Если такая статься есть в анатомии функций - можете, пожалуйста, подсказать ее номер? - Я с радостью пойду разбираться)

5 ответов

53 просмотра

3 if then else - наиболее шустрый вариант, это для начала, проверять заново все поля - действительно сложно и избыточно

Takedo- Автор вопроса
Mikhail Muzykin
3 if then else - наиболее шустрый вариант, это для...

Извините, я ничего не понял. Речь о том, что елочка из элифов хороша при малом объеме таблицы или как? Просто насколько я понял эта елка применяется к каждой строке в выделенном столбце. И время ее работы будет прямо пропорционально количеству строк

Takedo
Извините, я ничего не понял. Речь о том, что елочк...

Что поменяется, когда вы все равно будете тащить три поля из каждой строки с целью свериться со словарем записей? Повторюсь - с точки зрения производительности if then else оптимально

Takedo- Автор вопроса
Mikhail Muzykin
Что поменяется, когда вы все равно будете тащить т...

А, это так работает? Я этого не знал. Ладно, спасибо большое, Михаил!

[Подозреваемый] = "Какой-то хрен" во втором и третьем if можно удалить, мы и так идем по ветке else

Похожие вопросы

Обсуждают сегодня

Карта сайта