Разделение столбца с разделителями по формуле ТОЛЬКО - PullRequest
0 голосов
/ 28 ноября 2018

Есть похожие запросы, но не совсем то, что я хочу.Возьмем значение этого примера: aa; bb; cc; dd

Значения между каждой точкой с запятой не являются фиксированными.Они варьируются от 3 до 15 символов.Мне нужно вытащить подстроку из точки с запятой.

У меня есть 'aa' и 'bb', но я борюсь с 'cc' вперед.Вот мои первые две формулы:

=LEFT(A1,FIND(";",A1)-1)

... получить значения слева от первой точки с запятой

=MID(A1,
    (FIND(";",A1)+1),
     FIND(";", A1, (FIND(";",A1) + 1))-(FIND(";", A1) + 1))

... получить значения между первой и второй полу-двоеточие.Застрял в третьем (хотелось бы использовать переменные ... возможно, JSON?)

Конечная цель - разделить столбец с несколькими вариантами выбора на 5 столбцов для отчетов Power BI.Мы хотим, чтобы все вычисления были выполнены и очищены до того, как они попадут в отчет;Я знаю, что в Power BI есть опция разделения на разделители.

Любая помощь будет высоко оценена, спасибо.

PS Помечено в Excel, поскольку Sharepoint, очевидно, использует те же формулы, и это то, что яСейчас проверяю.

Ответы [ 3 ]

0 голосов
/ 28 ноября 2018

Есть десятки способов сделать это только с помощью формул.Не переходя к чему-то слишком эзотерическому и не прибегая к формулам массива, вы можете использовать что-то вроде:

=TRIM(MID(SUBSTITUTE($A3,";",REPT(" ",LEN($A3))),(COLUMN(F:F)-2)*LEN($A3)+1,LEN($A3)))

enter image description here

0 голосов
/ 28 ноября 2018

Попробуйте:

Создайте строку заголовка, в которую будут разбиты поля, пронумерованные от 1 до 5 (в ячейках B1 - F1).Эти # будут использоваться в формуле.

Во 2-й строке будет указано начало ваших данных (в ячейке A2).В ячейку B2 введите следующую формулу:

=TRIM(MID(SUBSTITUTE($A2,";",REPT(" ",LEN($A2))),(B$1-1)*LEN($A2)+1,LEN($A2)))

Затем вы можете использовать маркер заполнения (+), чтобы скопировать его из B2 в F2.

Ссылка: https://exceljet.net/formula/split-text-with-delimiter


Усовершенствованный вариант формулы:

=TRIM(
    MID(
        SUBSTITUTE(
            $A2,
            ";",
            REPT(
                " ",
                LEN(
                    $A2
                )
            )
        ),
        ( B$1 - 1 ) *
        LEN(
            $A2
        ) + 1,
        LEN(
            $A2
        )
    )
)

И для одноразового интерактивногоПроходы, вы можете использовать встроенный в Excel разделитель: Перейти к Данные -> Текст в столбцы и пройти через мастера.

0 голосов
/ 28 ноября 2018

Я не могу заверить вас, чтобы вы работали с sharepoint, но он будет работать на Excel.Попробуйте следующую формулу.

=TRIM(RIGHT(LEFT(SUBSTITUTE($A1,";",REPT(" ",100)),COLUMNS($A$1:A1)*100),100))

Как показано на скриншоте ниже, поместите формулу в ячейку B1, затем перетащите вправо, если необходимо.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...