Страницы: 1
RSS
PQ: Как собрать данные из разных столбцов с разными условиями в дополнительный столбец?
 
Добрый день, коллеги! В поиске не нашел походящего ответа. Есть 3 столбца: фамилия, имя, отчество (300кстрок). Некоторые с отчеством, большинство без него и оно не нужно - нет однофамильцев-тёзок. Но у некоторых тёзки есть, и поэтому таким нужно прикрутить отчество, а у кого его нет (в столбце Отчество), нужно прикрутить букву. Применил конструкцию if...then...else, всё хорошо, но вот прикрутить букву по условию в одном допстолбце не получается. В приложенном файле нужно прикрутить Максимовой букву "V". Подскажите, плиз.
Excel непознаваем как атом.
 
Цитата
mtts54 написал:
но вот прикрутить букву по условию в одном допстолбце не получается
А что за условие то? Почему прикрутить нужно именно букву "V", почему именно Максимовой? Пока, лично мне, ничего не понятно.
Вот горшок пустой, он предмет простой...
 
PooHkrd, просто потому что у Максимовой есть однофамильцы-тёзки (в другом списке), но с разными отчествами: R, I, V. У этой Максимовой отчество на "V". Нужно для джойна с другим списком.
Excel непознаваем как атом.
 
Цитата
mtts54 написал:
(в другом списке)
А другой список в другом примере, а пример в утке, утка в зайце...
Как вы хотите чтобы вам приджойнили к некоей Максимовой из одного списка, букву из другого списка, которого нет? брр...
Вот горшок пустой, он предмет простой...
 
PooHkrd,  меня бы устроило: if [Фамилия] = "Maksimova" then [Имя]&"."&"V"&"."&[Фамилия] else [Имя]&"."&[Фамилия], но как это выражение встроить в уже написанное условие для допстолбца NameFamily?
Excel непознаваем как атом.
 
Так что ли?
Код
    if [Фамилия]="Novozhilova" or [Фамилия]="Pavlova" 
        then Text.Combine({[Имя], Text.Upper([Отчество]), [Фамилия]}, ".") 
        else if [Фамилия] = "Maksimova" 
            then Text.Combine({[Имя], "V", [Фамилия]}, ".") 
            else Text.Combine({[Имя], [Фамилия]}, "."))
Вот горшок пустой, он предмет простой...
 
PooHkrd, да, отлично, спасибо!. Последняя скобка лишняя :) .
Excel непознаваем как атом.
 
Можно чуть короче:
Код
Text.Combine({
        [Имя],  
        if [Фамилия]="Novozhilova" or [Фамилия]="Pavlova" 
            then Text.Upper([Отчество])
            else if [Фамилия] = "Maksimova" 
                then "V" 
                else null,
        [Фамилия]}, ".")
Вот горшок пустой, он предмет простой...
 
PooHkrd, это уже элемент высшего пилотажа :excl:  
Excel непознаваем как атом.
 
mtts54, вы мне льстите. :oops:
Вовсе нет. Вынос за скобки общих множителей суммируемых элементов проходят вроде в алгебре в классе пятом. Тут точно такая же логика.
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх