Как настроить перенос диапазона с сортировкой в разные столбцы в порядке их названий?

Как настроить перенос диапазона с сортировкой по названию яблок на разные столбцы в лист "ЯБЛОКИ"? Функция FILTR работает, если колонки в листе, куда происходит перенос, расположены так же, как и в листе 1 (база данных), но если в листе 1 перемешать колонки, то возникают проблемы. Как это решить?
  • 9 ноября 2023 г. 17:19
Ответы на вопрос 2
Для решения данной проблемы можно использовать функцию VLOOKUP вместе с функцией CHOOSE.

В листе "ЯБЛОКИ" создайте столбцы, в которые вы будете переносить данные из листа 1. Назовите эти столбцы так же, как названия столбцов в листе 1.

Далее, в ячейке, куда нужно перенести данные из листа 1, используйте следующую формулу:

=VLOOKUP($A2, 'Лист 1'!$A:$Z, CHOOSE(MATCH(B$1, 'Лист 1'!$A$1:$Z$1, 0), COLUMN('Лист 1'!$A$1),'Лист 1'!$A:$Z), FALSE)

Где:
- $A2 - это значение в столбце A в листе "ЯБЛОКИ", которое будет использоваться для поиска в листе 1.
- 'Лист 1'!$A:$Z - замените на диапазон, где находятся данные в листе 1.
- B$1 - замените на ячейку, содержащую название столбца в листе "ЯБЛОКИ", куда нужно перенести данные.
- 'Лист 1'!$A$1:$Z$1 - замените на диапазон, где находятся названия столбцов в листе 1.

Убедитесь, что абсолютные и относительные ссылки в формуле настроены правильно. Затем скопируйте эту формулу в нужные ячейки в листе "ЯБЛОКИ".

Теперь при изменении порядка столбцов в листе 1, данные будут переноситься в правильные столбцы в листе "ЯБЛОКИ".
1. Замените ссылку на конкретный лист в формуле на общий ссылочный диапазон.
=ARRAYFORMULA(CHOOSECOLS(FILTER('Общий список'!A:I;'Общий список'!G:G=A2);MATCH(A1:G1;'Общий список'!A1:I1;0)))

2. Используйте фильтр для выбора только строк, которые соответствуют определенному значению в столбце G.
=ARRAYFORMULA(CHOOSECOLS(FILTER('Общий список'!A:I; 'Общий список'!G:G = A2); MATCH(A1:G1; 'Общий список'!A1:I1; 0)))

3. Используйте формулу CHOOSECOLS для выбора определенных столбцов на основе результатов фильтрации.
=ARRAYFORMULA(CHOOSECOLS(FILTER('Общий список'!A:I; 'Общий список'!G:G = A2); MATCH(A1:G1; 'Общий список'!A1:I1; 0)))

4. Используйте формулу MATCH для нахождения позиции столбцов, которые нужно выбрать.
=ARRAYFORMULA(CHOOSECOLS(FILTER('Общий список'!A:I; 'Общий список'!G:G = A2); MATCH(A1:G1; 'Общий список'!A1:I1; 0)))

5. Используйте функцию FILTER для фильтрации строк на основе определенного значения в столбце G.
=ARRAYFORMULA(CHOOSECOLS(FILTER('Общий список'!A:I; 'Общий список'!G:G = A2); MATCH(A1:G1; 'Общий список'!A1:I1; 0)))

6. Используйте функцию CHOOSECOLS, чтобы выбрать определенные столбцы на основе результатов фильтрации.
=ARRAYFORMULA(CHOOSECOLS(FILTER('Общий список'!A:I; 'Общий список'!G:G = A2); MATCH(A1:G1; 'Общий список'!A1:I1; 0)))

7. Используйте функцию MATCH для нахождения позиции столбцов, которые нужно выбрать.
=ARRAYFORMULA(CHOOSECOLS(FILTER('Общий список'!A:I; 'Общий список'!G:G = A2); MATCH(A1:G1; 'Общий список'!A1:I1; 0)))
Похожие вопросы