Импорт данных из n-го столбца на другой лист

#excel #google-sheets #google-sheets-formula #multiple-columns

#excel #google-таблицы #google-таблицы-формула #несколько столбцов

Вопрос:

Я пытаюсь импортировать все данные из n-го столбца, начиная с 3-й строки, с одного листа («Dataimport») на другой («Очищенные данные») в той же электронной таблице, но пока мне удалось получить только определенную ячейку из каждого n-го столбца:

=INDEX(Dataimport!$C$3:$HI$3;(ROWS($A$1:A1)*6) 1)

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

Прямо сейчас я делаю это вручную, используя =TRANSPOSE(IMPORTRANGE("1yyb1k0uAdN1XcLWBhNq4jA0eInnePRoUt9IbuXDmfEU";"Dataimport!I3:I300")) в каждой ячейке, чтобы данные столбца импортировались горизонтально (вот как это должно выглядеть):

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

Лист с данными выглядит следующим образом. Здесь я хочу получить данные из каждого 7-го столбца, начиная со столбца C:

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

Есть идеи, как я это делаю?

Общедоступная ссылка: https://docs.google.com/spreadsheets/d/1hXFiSoduVjcZ6fbOcyp-BfI7m4So-01umLS0kBm-lVI/edit?usp=sharing

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

1. В Excel вы можете использовать массивы для аргументов row_num и column_num INDEX функции. Возможно, есть что-то подобное в Sheets .

2. Не могли бы вы обновить свой вопрос общедоступной ссылкой на вашу электронную таблицу, примером используемых вами входных данных и ожидаемым результатом?

3. @Alessandro Теперь я вставил общедоступную ссылку 🙂

4. Бетина, пожалуйста, сделайте свой образец листа доступным для редактирования всеми, а не только для просмотра. Смотрите Здесь руководство: webapps.stackexchange.com/questions/138382 /… Поскольку это связано с импортом с других листов, мы теряем этот доступ, если создаем собственную копию вашего листа. Кроме того, вы можете вставить содержимое другого листа на вкладку в вашем образце листа, чтобы мы могли разработать правильную формулу локально.

Ответ №1:

Предлагаемое решение

Учитывая вашу попытку =INDEX(Dataimport!$C$3:$HI$3;(ROWS($A$1:A1)*6) 1) , я бы предложил использовать формулу Google Sheets OFFSET , которая позволяет указывать индексы как математические операции.

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

Вот пример:

 =TRANSPOSE(OFFSET(Dataimport!C$2:C$199;1;(ROW()-1)*6;199;1))
 

С помощью этой формулы вы можете получить правильный столбец на Dataimport листе, а затем транспонировать его, чтобы он помещался в строку.

Ввод этой формулы в ячейку Clean Data «D2» приведет к вычислению смещения столбца на 6, начиная с 3-го столбца («C»), учитываемого в OFFSET формуле. Перетаскивание формулы вниз приведет к корректировке индекса смещения столбца до необходимого диапазона в 7 столбцов.

Ссылка

СМЕЩЕНИЕ

Ответ №2:

Я думаю, у меня есть решение. Я создал электронную таблицу с фиктивными данными, а затем создал формулу, которая берет каждый n-й столбец из таблицы.

Вот мое решение: https://docs.google.com/spreadsheets/d/1J6x4H_cNczRRo40Ri6Nwa-YnZOISpxZmG4-JZ7tA1kA/copy

Сначала я создаю столбец ID для обеих таблиц, чтобы позволить vlookup работать, для этого я использую vlookup и формулу arrayformula: для захвата нескольких столбцов я использую формулу последовательности в vlookup. Это создает массив чисел с определенным шагом. Итак, если у вас может быть каждый 6-й столбец, вы определяете шаг как 6. Здесь шаг определен в ячейке c23 =ArrayFormula(vlookup(A24:A43,A2: AB21,последовательность (1,5,4, C23), false))

Конечно, он может работать на нескольких листах или файлах. Вам просто нужно использовать importranges вместо стандартных ссылок на диапазон.

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