Предполагая, что вы хотите посчитать количество вхождений первых непробельных символов, которые встречаются до первого разделяющего пробела, вы можете сделать следующее:
Col 2 =
VAR Trimmed = TRIM(Table2[Col 1])
VAR FirstSpace = SEARCH(" ", Trimmed, 1, LEN(Trimmed) + 1)
VAR FirstString = LEFT(Trimmed, FirstSpace - 1)
RETURN DIVIDE(
LEN(Trimmed) - LEN(SUBSTITUTE(Trimmed, FirstString, "")),
FirstSpace - 1
)
Давайте рассмотрим примерчтобы увидеть, как это работает.Предположим, у нас есть строка «abc abc abc».
Функция TRIM
удаляет все лишние пробелы в начале и конце, поэтому Trimmed
= "abc abc abc".
FirstSpace
ищет первый пробел в Trimmed
.В этом случае FirstSpace
= 4. (Если первого пробела нет, то мы определяем FirstSpace
как длину Trimmed
+ 1, поэтому следующая часть работает правильно.)
The FirstString
использует FirstSpace
, чтобы найти первый фрагмент.В этом случае FirstString
= "abc".
Наконец, мы используем SUBSTITUTE
для замены каждого FirstString
пустой строкой (оставляя только средние пробелы) и посмотрим, как это меняет длинуTrimmed
.Мы знаем LEN(Trimmed)
= 11 и LEN(" ")
= 2, поэтому разница в том, что 9 символов мы удалили путем подстановки.Мы знаем, что 9 символов - это n копий FirstString
, "abc", и мы знаем, что длина FirstString
равна FirstSpace
- 1 = 3.
Таким образом, мы можем решить 3n = 9 для nчтобы получить n = 9/3 = 3, количество подстрок "abc".