#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 вместо стандартных ссылок на диапазон.