Warning: Constant USER_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 85

Warning: Constant PASS_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 86

Warning: Constant AUTH_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 87

Warning: Constant SECURE_AUTH_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 88

Warning: Constant LOGGED_IN_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 89

Warning: Constant TEST_COOKIE already defined in /var/www/admin/www/markimarta.ru/wp-config.php on line 90
Реализация switch…case конструкции в формуле SharePoint и Excel « Марк и Марта.Ру. Записки отца-программиста




Реализация switch...case конструкции в формуле SharePoint и Excel


Warning: Undefined variable $thumbnail in /var/www/admin/www/markimarta.ru/wp-content/themes/markimarta2023/single.php on line 44

Warning: Attempt to read property "ID" on null in /var/www/admin/www/markimarta.ru/wp-content/themes/markimarta2023/single.php on line 44

Warning: Undefined variable $thumbnail in /var/www/admin/www/markimarta.ru/wp-content/themes/markimarta2023/single.php on line 45

Warning: Attempt to read property "post_title" on null in /var/www/admin/www/markimarta.ru/wp-content/themes/markimarta2023/single.php on line 45

При обработке заказов, хранящихся в списке SharePoint, использовались статусы 'Новый', 'В работе', 'Выполнен', 'Прекращен'. Требовалось создать сортировку, при которой сначала выводились бы заказы со статусом 'Новый', потом 'В работе', 'Выполнен' и 'Прекращен'. Сортировка по алфавиту не подходила.

Реализацию планировал сделать без использования серверного кода, благо вариантов для реализации видел несколько. Но остановился на том, который был мне проще.

Для создания сортировки решил создать поле, в котором статус имел бы впереди некий индекс, по которому осуществлялась бы сортировка, например, '1. Новый', '2. В работе', '3. Выполнен', '4. Прекращен', чтобы по этому полю и сделать сортировку.

Для этого нужно создать в списке столбец типы "Вычисляемый по другим столбцам" и написать формулу. Идеально для решения подходит вариант, в котором можно было бы написать условия, по аналогии с оператором switch ... case. Ниже пример кода на Javascript.

switch (expr) {
  case 'Новый':
    console.log('1. Новый');
    break;
  case 'В работе':
    console.log('2. В работе');
    break;
  case 'Выполнен':
  case 'Выполнен почти':
    console.log('3. Выполнен');
    break;
  case 'Прекращен':
    console.log('4. Прекращен');
    break;
  default:
    console.log('Неподдерживаемое значение' + expr + '.');
}

console.log("Статус заказа: " + expr);

 

Но только формулы SharePoint, они же как минимум на 90% формулы из MS Excel, не имеют такого оператора switch ... case. Чаще всего в Excel я использую формулу "СЦЕПИТЬ", для генерации SQL запросов. Но тут пришлось подумать про использование условий.

Формула ЕСЛИ в Excel для русской локации имеет такой формат:

ЕСЛИ(выражение истинно; то сделать это; иначе сделать это)

Т.е. для реализации конструкции switch ... case нужно написать каскад вложенных операторов ЕСЛИ.
Ниже запись формуля для SharePoint. 'Статус' - это название столбца.

 

=ЕСЛИ((Статус="Новый");"1. Новый"; 
        ЕСЛИ((Статус="В работе");"2. В работе"; 
                ЕСЛИ(НЕ(ЕОШ((НАЙТИ("Выполнен";Статус))));"3. Выполнен"; 
                        ЕСЛИ((Статус="Прекращен");"4. Прекращен"; 
                                ) 
                        ) 
                ) 
        ) 

 

А вот так будет запись для Excel:

=ЕСЛИ((А1="Новый");"1. Новый"; 
        ЕСЛИ((А1="В работе");"2. В работе"; 
                ЕСЛИ(НЕ(ЕОШ((НАЙТИ("Выполнен";А1))));"3. Выполнен"; 
                        ЕСЛИ((А1="Прекращен");"4. Прекращен"; 
                                ) 
                        ) 
                ) 
        )

 
Для записи подобных формул лично я пользуюсь редактором Notepad++, после чего копирую текст в буффер и вставляю в окно формул в Excel или SharePoint.

 


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment





Срок проверки reCAPTCHA истек. Перезагрузите страницу.



MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика