#excel #excel-formula
Вопрос:
Я отвечаю за добавление новых сотрудников в наши системы распознавания речи и геймификации.
Когда я получаю пакет билетов, я собираю кучу данных в электронную таблицу, на которую затем ссылаюсь при добавлении этих пользователей в системы (у которых, к сожалению, нет опции загрузки JSON/CSV или чего-либо подобного).
Чтобы сэкономить некоторое время на компиляции, я начал экспортировать кучу данных из нашей базы данных и нашей системы управления персоналом в этот лист, а затем использовать электронную почту нового сотрудника, чтобы просмотреть все остальные поля данных.
Для одной из наших систем он имеет строгое ограничение по символам, а формат имени пользователя — «cdeимя.фамилия». Это не проблема для обычного объединения, но оно имеет строгое ограничение по символам, поэтому, если у пользователя фамилия через дефис, я в основном сброшу все после дефиса.
Сначала я попробовал простую формулу, используя комбинацию ЛЕВОГО и НАЙТИ -1, чтобы найти дефис, а затем взять все слева от него. Это, очевидно, в конечном итоге не работает, потому что я получаю ЗНАЧЕНИЕ#! для всех, у кого в фамилии нет дефиса.
Я попытался использовать IFERROR, чтобы сказать: «Хорошо, попробуйте вернуть фамилию без дефиса, в противном случае просто верните фамилию», но по какой-то причине, когда я помещаю ссылку в часть Return_If_Error, она не распознает ее как ссылку.
Поэтому я ищу формулу, которая будет работать со значением поиска и даст мне только то, что перед дефисом, но в противном случае все равно просто даст мне фамилию.
Базовая формула, которая у меня есть, которая просто ищет и объединяет первое и последнее в «cdefirstname.lastname», это:
=CONCATENATE("cde",LOWER(XLOOKUP(G578,Sheet4!M:M,Sheet4!B:B)),".",LOWER(XLOOKUP(G578,Sheet4!M:M,Sheet4!C:C)))
Комментарии:
1. Поэтому используйте if (), чтобы выполнить логический тест для дефиса, и выполните одно выражение, если дефис присутствует, и другое, если его нет.
2.
put the reference in the Return_If_Error portion..
как выглядит ссылка?
Ответ №1:
Чтобы расширить комментарии, у вас есть правильная идея, просто используйте IF
оператор для проверки, содержит ли строка» -«, Затем используйте обычные строковые функции , Такие как FIND
, LEFT
и т. Д., Чтобы выбрать то, что вы хотите.
Например:
="cde/"amp;
LEFT(H1,FIND(".",H1)-1)amp;
IF(ISNUMBER(FIND("-",H1)),MID(H1,FIND(".",H1),FIND("-",H1)-FIND(".",H1)),
MID(H1,FIND(".",H1),FIND("@",H1)-FIND(".",H1)))