Извлечь первый символ всех слов, кроме первого

У меня есть список имен, и я пытаюсь извлечь первое слово, затем первый символ 2-го слова и 3-й символ 3-й работы и так далее...

Я смог только сделать эту формулу, но она работает до 2-го имени, как добиться дальнейшего, любая помощь будет высоко оценена.

=LEFT(D4,FIND(" ",D4)-1)&" "&LEFT(LEFT(D4,SEARCH(" ",D4)-1),1)

[введите описание ссылки здесь][2]

[2]:

Ссылка

Обновил ссылку @player0

HSHO 10.01.2023 14:29

@ player0 ввод находится в столбце с надписью «строка», а вывод — в столбце с надписью «результат», или вы думаете, что я что-то пропустил?

Solar Mike 10.01.2023 14:31

@SolarMike, вы этого не сделали, я думаю, это просто «легко» масштабировать (легко, например, избегать присоединения чудовищных строк, чтобы это работало для 10+ имен)

player0 10.01.2023 14:47
Типы данных JavaScript
Типы данных JavaScript
В JavaScript существует несколько типов данных, включая примитивные типы данных и ссылочные типы данных. Вот краткое объяснение различных типов данных...
Как сделать движок для футбольного матча? (простой вариант)
Как сделать движок для футбольного матча? (простой вариант)
Футбол. Для многих людей, живущих на земле, эта игра - больше, чем просто спорт. И эти люди всегда мечтают стать футболистом или менеджером. Но, к...
Знайте свои исключения!
Знайте свои исключения!
В Java исключение - это событие, возникающее во время выполнения программы, которое нарушает нормальный ход выполнения инструкций программы. Когда...
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик Модуль flexbox, также известный как гибкий модуль разметки box, помогает эффективно проектировать и...
Введение в раздел "Заголовок" в HTML
Введение в раздел "Заголовок" в HTML
Говорят, что лучшее о человеке можно увидеть только изнутри, и это относится и к веб-страницам HTML! Причина, по которой некоторые веб-страницы не...
2
3
71
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Итак, я взял только два ваших примера, так как у меня нет времени вводить их все, но это работает:

LEFT(B1,FIND(" ",B1)-1)&" "&MID(B1,FIND(" ",B1,1)+1,1)&IFERROR(MID(B1,FIND(" ",B1,FIND(" ",B1,1)+1)+1,1),"")

Я использовал mid() вместо левой(левой(сконструировать и найти()), чтобы найти второе и третье пробелы.

Если ошибка не возникает, когда третьего имени не существует.

Вы можете расширить это на 4 имени :) удачи.

Привет, спасибо, что поделились ответом, но что, если в имени больше слов, например, более 3. Он займет первый символ 4-го или 5-го слова и выдаст ошибку, если строка имеет только одно имя.

HSHO 10.01.2023 14:39

@HSHO Как я уже говорил в своем ответе, я показал, как это сделать для 3, и я оставил вас, чтобы расширить его для 4 или более, просто вопрос о том, чтобы найти положение пробелов, которые я ясно показал.

Solar Mike 10.01.2023 14:40
Ответ принят как подходящий

Пытаться:

=ARRAYFORMULA(IFNA(REGEXEXTRACT(B2:B, "\w+ ")&
 BYROW(B2:B, LAMBDA(x, TEXTJOIN(, 1, IFNA(REGEXEXTRACT(
 SPLIT(REGEXREPLACE(x, "^(\w+) ", ), " "), "[A-Z]"))))))


Обновлять:

=ARRAYFORMULA(IFNA(TRIM(REGEXEXTRACT(B2:B, "\w+")&" "&
 BYROW(B2:B, LAMBDA(x, TEXTJOIN(, 1, IFERROR(REGEXEXTRACT(
 SPLIT(REGEXREPLACE(x&" ", "^(\w+) ", ), " "), "[A-Z]"))))))))

Большое спасибо, но это не работает, если ячейка имеет одно имя. @player0

HSHO 10.01.2023 14:45

@HSHO Но ни в одном из приведенных вами примеров нет ни одного имени. Почему вы находите препятствия или это вопрос с безграничной ползучестью? В этом случае мы, как правило, перестаем играть.

Solar Mike 10.01.2023 14:49

Вот еще один вариант регулярного выражения, который вы можете попробовать:

-

Поздно в игре, но я думаю, что это был бы чистый способ извлечения этих букв, без рвоты на отдельные слова или пустые ячейки:

=iferror(regexextract(B2,"\w+ ?")&regexreplace(mid(proper(B2),2,99),"[^A-Z]",""))

...или как формула массива:

=arrayformula( iferror( 
  regexextract(B2:B, "\w+ ?") & regexreplace(mid(proper(B2:B), 2, 99), "[^A-Z]", "") 
) )

Другие вопросы по теме