Изменение значения в одном столбце с последовательной информацией при изменении значения ячейки в другом столбце

Не могу найти информацию в сети, поэтому прошу помощи. Все решения, которые я нахожу, находятся на Python. Мне нужно решение в таблицах Google.

У меня есть последовательная информация, которую необходимо обновить на основе значений в другом столбце.

образец:

dog 1
dog 1
dog 1
cat 2
cat 2
cat 2
cat 2
cat 2
    3
    3
    4
    4
    4
    5
    5
    6
    7
    7
    7
    7
    7
    7
    8

результат мне нужен:

dog 1
dog 1
dog 1
cat 2
cat 2
cat 2
cat 2
cat 2
dog 3
dog 3
cat 4
cat 4
cat 4
dog 5
dog 5
cat 6
dog 7
cat 7
dog 7
dog 7
dog 7
dog 7
cat 8

Vlookup — не решение, потому что у меня очень длинный список. Пожалуйста, порекомендуйте решение без использования функции «ISODD». Потому что были бы случаи с текстовыми значениями.

Пожалуйста, не путайте теги Google Sheets с тегами Excel, читайте описание тега.

Excellor 06.06.2024 11:16

Вы имеете в виду, что вам просто нужно чередовать «собаку» и «кошку»?

pilchard 06.06.2024 11:22

@pilchard сделал мой образец более конкретным.

Beket Kassymbekov 06.06.2024 11:30

Хорошо, это просто проверка на четность: =if (ISODD(INDIRECT(ADDRESS(ROW(), COLUMN()+1))), "dog", "cat"). Обязательно будет дубликат

pilchard 06.06.2024 11:37

@pilchard Прости, дорогой друг. Я допустил ошибку. Я еще раз поменял образец)

Beket Kassymbekov 06.06.2024 11:37

@pichard Можете ли вы сделать свою формулу более конкретной? Где мне писать «ссылки на ячейки», например A2, B2.

Beket Kassymbekov 06.06.2024 11:42

Код, который я опубликовал, просто смотрит на столбец справа от любой ячейки. Если вы хотите использовать конкретные ссылки на ячейки, то это будет =if (ISODD(B1), "dog", "cat"), если числовые данные находятся в столбце B и начинаются со строки 1.

pilchard 06.06.2024 11:43

Тогда вам нужно будет изменить свое условие в операторе if. см. документацию: Документы Google: функция ЕСЛИ

pilchard 06.06.2024 11:46

@pichard Тогда будут сотни утверждений «если».

Beket Kassymbekov 06.06.2024 11:47

Вот как работает электронная таблица

pilchard 06.06.2024 12:08

Покажите, что вы пробовали, а что не работает. Stackoverflow не является службой кодирования. Также не меняйте условия вопроса, поскольку это сводит на нет любое обсуждение.

pilchard 06.06.2024 15:17

почему? i.sstatic.net/GPHkMkoQ.png

player0 06.06.2024 16:29

Вместо кошки есть собака. Ошибка. @player0

Beket Kassymbekov 12.06.2024 13:45
Сортировка hashmap по значениям
Сортировка hashmap по значениям
На Leetcode я решал задачу с хэшмапой и подумал, что мне нужно отсортировать хэшмапу по значениям.
1
13
85
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вот один из подходов, который вы можете опробовать:

=let(Σ,unique(tocol(A:A,1)),Λ,counta(Σ),choosecols(scan(,B1:index(B:B,match(,0/(B:B<>""))),lambda(a,c,let(x,c<>iferror(offset(c,-1,)),
 if (and(x,+a+1<=Λ),{+a+1,chooserows(Σ,+a+1),c},if (and(x,+a+1>Λ),{1,chooserows(Σ,1),c},{+a,chooserows(Σ,+a),c}))))),2,3))

Альтернатива (это работает ТОЛЬКО в том случае, если, скажем, 1 или 23 не будут где-то повторяться снова)

=map(B1:index(B:B,match(,0/(B:B<>""))),lambda(Σ,let(Λ,unique(tocol(A:A,1)),hstack(chooserows(Λ,mod(countunique(B1:Σ)-1,rows(Λ))+1),Σ))))

Учитывая отсутствие подробностей в ФП и неоднократные изменения в вопросе без каких-либо попыток фактически описать действующую логику, я думаю, что голосование за закрытие подробностей уместно.

pilchard 06.06.2024 15:20

Спасибо за альтернативный ответ. Оно работает.

Beket Kassymbekov 07.06.2024 13:10
Ответ принят как подходящий

используйте VLOOKUP:

=INDEX(IFNA(VLOOKUP(B:B, {TOCOL(UNIQUE(B:B), 1), ARRAY_CONSTRAIN(TOCOL(
 REDUCE(, SEQUENCE(ROUNDUP(COUNTUNIQUE(B:B)/COUNTA(A:A))), 
 LAMBDA(x, y, {A:A; x})), 1), COUNTUNIQUE(B:B), 1)}, 2, )))

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

Google Таблицы: объединить два столбца по порядку и зациклить их
Таблицы Google IMPORTXML и XPath href и заголовок не возвращаются
Извлеките долларовое значение из другого листа, суммируйте в таблице данных, когда значение совпадает с другим
Могу ли я изменить эту формулу, чтобы она отслеживала дату начала и окончания вместо списка дат в столбце?
Как создать динамический VSTACK, состоящий из массивов, сформированных с помощью MAKEARRAY в Google Sheets
Google Sheet – сложная формула для выравнивания декартова произведения в одном столбце
Как запустить функцию onEdit/onChange в скрипте Google Apps для данных, полученных динамически с помощью запроса
ВАЖНО: как сводить, группировать и агрегировать по двум типам животных
Создание расписания частоты, которое динамически обновляется в зависимости от даты начала и частоты кадров
Как мне внести изменения в отчет ЕСЛИ И, чтобы правильно отображать произведенные или нет платежи?