Основная таблица – это строки 1–7.
-Каждую неделю/период он увеличивается на дополнительный столбец.
-Решения для индексов и счетчиков, которые я рассмотрел, предназначены для приложений с не пустыми ячейками. Это сработало бы, если бы каждая пустая ячейка содержала 0 или другое значение. В моей ситуации пустые ячейки по всей таблице.
строки 11–16 — это пример результатов, которые я хочу получить.
Я просто хочу убедиться, что я правильно понял этот пост, вы хотели показать последние записи на основе цепочки таблиц выше? Я хочу понять, изменятся ли ваши элементы, а также возможно ли, чтобы ваша таблица оставалась в том виде, в котором она есть сейчас, не пропуская столбец? Можете ли вы также разъяснить это: «Я пробовал индекс, счетчик, массивы и т. д. Пустые ячейки — это препятствие», чтобы сообщество понимало ограничения вашего проекта.
Рассмотрите возможность предоставления входных данных и ожидаемого результата в виде текстовой таблицы в вопросе. Нажмите здесь , чтобы легко создать таблицу, которую легко скопировать/вставить. Не делитесь ссылками, такими как электронные таблицы, которые делают вопрос бесполезным для других , или изображениями, которые трудно скопировать . Также обратите внимание, что ваш адрес электронной почты также может быть доступен всем, если вы поделитесь файлами Google.
Ваш ответ однозначен... Это мое развертывание ошибочно. спасибо за любезную помощь
Очистите существующие данные из 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)))))))
range
для удаления пустых столбцов, а результат сохраняется в array
.three
сохраняет последние 3 столбца array
labels
указаны названия ваших деталей.three
.labels
.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
рассчитывается по-другому:
range
фильтруется для удаления столбцов, у которых нет заголовка.Я использовал эту опцию =LET(диапазон,MainInvE, labels,INDEX(диапазон,,1), array,FILTER(диапазон, BYCOL(диапазон, LAMBDA(c, COUNTA(c)>0))),... я получил эта ошибка Значение параметра 2 функции CHOOSECOLS не может быть нулевым. Вот что я сделал: • Использовал именованный диапазон • Использовал формулу Let на отдельном листе в той же книге • Протестировал в образце/все работает отлично • Подключил ее к фактический лист o Отлично возвращает более 40 элементов (меток) в столбцах A и D o Возвращает указанную выше ошибку значения в B и E. Я не могу понять, какие корректировки необходимо внести и почему
Ошибка указывает на проблему с SEQUENCE(3,1,COLUMNS(array)-2)
, что, скорее всего, указывает на проблему с array
. Для устранения неполадок превратите последний оператор LET в переменную, добавив имя перед последним IFNA (например, test,IFNA(VSTACK...
), затем вставьте запятую перед последней закрывающей скобкой полной формулы, а затем между этой запятой и последней скобкой. , вы можете разместить любую переменную или одноразовое вычисление, не затрагивая формулу. Вы можете поставить ,test)
в конце, чтобы проверить текущий результат, или ,array)
, чтобы посмотреть, что он возвращает, или ,SEQUENCE(3,1,COLUMNS(array)-2))
и т. д.
Я выбрал другой подход, мне кажется, он работает. На основании этого листа:
Скриншот исходной таблицы и вывода
в «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 недели изменятся, а также недели, которые там суммированы. Кроме того, добавление дополнительных недель будет работать так, как я полагаю, вам нужно.
Пожалуйста, отредактируйте, чтобы включить больше недель. Непонятно, в чем заключается задача.