Получение значений диапазона последних столбцов при наличии пустых ячеек в Google Таблицах

Основная таблица – это строки 1–7. -Каждую неделю/период он увеличивается на дополнительный столбец.
-Решения для индексов и счетчиков, которые я рассмотрел, предназначены для приложений с не пустыми ячейками. Это сработало бы, если бы каждая пустая ячейка содержала 0 или другое значение. В моей ситуации пустые ячейки по всей таблице.

строки 11–16 — это пример результатов, которые я хочу получить.

  • вытаскивание последнего столбца, который будет меняться каждый период. _ вытягивание суммы последних трех столбцов, которая также будет меняться каждый период

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

Blindspots 24.04.2024 06:02

Я просто хочу убедиться, что я правильно понял этот пост, вы хотели показать последние записи на основе цепочки таблиц выше? Я хочу понять, изменятся ли ваши элементы, а также возможно ли, чтобы ваша таблица оставалась в том виде, в котором она есть сейчас, не пропуская столбец? Можете ли вы также разъяснить это: «Я пробовал индекс, счетчик, массивы и т. д. Пустые ячейки — это препятствие», чтобы сообщество понимало ограничения вашего проекта.

Babanana 24.04.2024 06:55

Ваш ответ однозначен... Это мое развертывание ошибочно. спасибо за любезную помощь

Keith Bryant 03.05.2024 17:50
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
4
133
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Очистите существующие данные из A10:E16 и вставьте следующую формулу в A10.

Он сгенерирует две таблицы и результаты.

Нет строки заголовков

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

=LET(range,A2:Z7, labels,INDEX(range,,1), 
  array,FILTER(range, 
    BYCOL(range, LAMBDA(c, COUNTA(c)>0))), 
  three,CHOOSECOLS(array,
     SEQUENCE(3,1,COLUMNS(array)-2)),
  IFNA(VSTACK(
    HSTACK("Last Recorded Week",,,
      "Last 3 Week Period"), 
    HSTACK(labels, INDEX(three,,3),,
    labels, BYROW(three, LAMBDA(r, SUM(r)))))))
  1. Он использует BYROW, чтобы проверить, какие столбцы имеют хотя бы одно значение в любой строке от 2 до 7. Эта информация используется для ФИЛЬТРАЦИИ range для удаления пустых столбцов, а результат сохраняется в array.
  2. three сохраняет последние 3 столбца array
  3. Наконец возвращаются результаты:
    1. В первом столбце labels указаны названия ваших деталей.
    2. Второй столбец — это цифры за прошлую неделю, взятые из последнего столбца three.
    3. Затем добавляется пустой столбец, за которым следует еще один экземпляр labels.
    4. Последний столбец — это общее количество за 3 недели, возвращаемое путем передачи three в функцию BYROW, чья формула LAMBDA суммирует каждую строку по очереди.

Строка заголовков

Эта формула будет работать только при наличии строки заголовков.

=LET(range,A2:Z7, hdg,A1:Z1, 
  labels,INDEX(range,,1), 
  three,CHOOSECOLS(FILTER(range,hdg<>""),
    SEQUENCE(1,3, COUNTA(hdg)-2)),
  IFNA(VSTACK(
    HSTACK("Last Recorded Week",,,
      "Last 3 Week Period"), 
    HSTACK(labels, INDEX(three,,3),,
      labels, BYROW(three, LAMBDA(r, SUM(r)))))))

То же, что и предыдущая формула, за исключением того, что array опущено, поскольку three рассчитывается по-другому:

  1. Аргумент CHOOSECOLS array_range range фильтруется для удаления столбцов, у которых нет заголовка.
  2. SEQUENCE использует COUNTA в заголовках, чтобы определить общее количество столбцов.

Я использовал эту опцию =LET(диапазон,MainInvE, labels,INDEX(диапазон,,1), array,FILTER(диапазон, BYCOL(диапазон, LAMBDA(c, COUNTA(c)>0))),... я получил эта ошибка Значение параметра 2 функции CHOOSECOLS не может быть нулевым. Вот что я сделал: • Использовал именованный диапазон • Использовал формулу Let на отдельном листе в той же книге • Протестировал в образце/все работает отлично • Подключил ее к фактический лист o Отлично возвращает более 40 элементов (меток) в столбцах A и D o Возвращает указанную выше ошибку значения в B и E. Я не могу понять, какие корректировки необходимо внести и почему

Keith Bryant 03.05.2024 05:59

Ошибка указывает на проблему с SEQUENCE(3,1,COLUMNS(array)-2), что, скорее всего, указывает на проблему с array. Для устранения неполадок превратите последний оператор LET в переменную, добавив имя перед последним IFNA (например, test,IFNA(VSTACK...), затем вставьте запятую перед последней закрывающей скобкой полной формулы, а затем между этой запятой и последней скобкой. , вы можете разместить любую переменную или одноразовое вычисление, не затрагивая формулу. Вы можете поставить ,test) в конце, чтобы проверить текущий результат, или ,array), чтобы посмотреть, что он возвращает, или ,SEQUENCE(3,1,COLUMNS(array)-2)) и т. д.

Blindspots 03.05.2024 08:35

Я выбрал другой подход, мне кажется, он работает. На основании этого листа:

Скриншот исходной таблицы и вывода

в «B10» и скопировать в B16: =indirect("R" & row()-9 & "C" & counta($1:$1),false)

в «Е10»: =let(label, indirect("R1C" & counta(1:1),false) , week,right(label,len(label)-5)*1,"Weeks " & week-2 & "-" & week)

В «E11» и скопировано в E16: =sum(let(week, counta($1:$1), srcRow, match(D11,$A$1:$A$7, 0), indirect("R" & srcRow & "C" & week-2 & ":R" & srcRow & "C" & week, false)))

если метка «Неделя 4» удалена в строке 1, вы увидите, что цифры за 3 недели изменятся, а также недели, которые там суммированы. Кроме того, добавление дополнительных недель будет работать так, как я полагаю, вам нужно.

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