Как добавить 3 таблицы с разным количеством столбцов в google sheet?

#google-sheets #append #formula

Вопрос:

введите описание изображения здесь

Всем привет,

У меня есть 3 таблицы с разным количеством столбцов, где некоторые столбцы фактически повторяются в этих 3 таблицах (как показано на скриншоте выше).

Table 1: Col A to Col D

Table 2: Col F to Col H

Table 3: Col J to Col L

Я хочу объединить эти 3 таблицы вместе, чтобы уменьшить количество столбцов в моем листе Google. На скриншоте ниже показано, как я обрабатываю эти 3 таблицы перед объединением.

введите описание изображения здесь

Я использую QUERY для создания дополнительных столбцов для каждой таблицы, чтобы количество столбцов и положение были выровнены между 3 таблицами. После этого я QUERY снова использую для добавления 3 обработанных таблиц, как показано на скриншоте ниже:

введите описание изображения здесь

Однако этот метод очень утомителен, когда у меня 10 или более таблиц. Есть ли какие-либо другие более простые способы или приемы, чтобы я мог достичь того же ожидаемого результата, как показано на 3-м скриншоте?

Это мой листок:

https://docs.google.com/spreadsheets/d/1H1gJAhp1RVax2fy8D-uEtFxdjb-zAHutkPFv5WZT_TY/edit#gid=0

Любая помощь будет очень признательна!

Ответ №1:

Вам понадобится действительно сложная формула, чтобы получить желаемый результат, представляющий собой комбинацию нескольких формул

Я добавил новую вкладку в ваш лист Google под названием «Решение» с этой формулой

 =QUERY(ARRAYFORMULA({
IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!B3:D3amp;"~"amp;Sheet1!A4:Aamp;"~"amp;Sheet1!B4:D),"~")),"");
IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!G3:H3amp;"~"amp;Sheet1!F4:Famp;"~"amp;Sheet1!G4:H),"~")),"");
IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!K3:L3amp;"~"amp;Sheet1!J4:Jamp;"~"amp;Sheet1!K4:L),"~")),"")}), 
"SELECT Col2, SUM(Col3) WHERE Col2 is not null GROUP BY Col2 PIVOT Col1 LABEL Col2 'Student Name' ")
 

Шаги:

  1. Открутите каждый стол =IFERROR( ArrayFormula(SPLIT(FLATTEN(Sheet1!B3:D3amp;"~"amp;Sheet1!A4:A6amp;"~"amp;Sheet1!B4:D6),"~")),"")
  2. Объедините все таблицы в одну таблицу: =ARRAYFORMULA({__Unpivot1__; __Unpivot2__, __Unpivot3__})
  3. Сверните данные выше в шаге 2: =Query(__Step2__, "SELECT Col2, SUM(Col3) GROUP BY Col2 PIVOT Col1 LABEL Col2 'Student Name' ")
  4. Добавьте WHERE Col2 is not null запрос, чтобы удалить все возможные пустые строки

Комментарии:

1. Спасибо за ваше решение! Количество столбцов для каждой таблицы фиксировано, но строки могут продолжать увеличиваться. Поэтому я отредактировал вашу формулу, удалив 6 зад. Однако, похоже, что на вкладке «Решение» есть пустое место (строка 2), как мне его удалить?

2. Вам нужно добавить WHERE Col2 is not null в формулу. Я обновил его в ведомости. Смотрите видео: youtube.com/watch?v=J_HxzNw-feA