Формула массива возвращает данные из ВТОРОЙ соответствующей строки, не может получить первую строку

Я хочу скопировать из исходного листа выбранные столбцы (h,f,e,g,k) из соответствующих строк (соответствующие строки имеют запись в столбце B, которая соответствует целевому листу A1/"заголовку")

Формула, которую я использую, кажется, пропускает первую строку соответствующих данных. Не могу понять почему.
Исходный лист имеет заголовок в строке 1, данные начинаются со строки 2. На целевых листах заголовок листа находится в строке 1, заголовок в строке 2, затем данные копируются, начиная со строки 3.

Исходный лист («Вставить данные»):

ИДЕНТИФИКАТОР ИМЯ ТИП СТИЛЬ МОД МФР DESC КОЛ-ВО РАСХОДЫ МАР ПРИ 1 ДЖО 1 1 1 1 1 1 1 1 1 2 ДЖО 2 2 2 2 2 2 2 2 2 3 ДЖО 3 3 3 3 3 3 3 3 3 4 ЛПП 4 4 4 4 4 4 4 4 4 5 ЛПП 5 5 5 5 5 5 5 5 5

Формула в ячейке B3 на листе назначения:

=ЕСЛИОШИБКА(ИНДЕКС('Вставить данные'!$B$1:$K$4000,МАЛЫЙ(ЕСЛИ('Вставить данные'!$B$1:$B$4000=$A$1,ROW('Вставить данные'!$ B$1:$B$4000)),ROWS($H$1:$H2)),7),"")

это должно взять количество из столбца H на исходном листе и поместить его в столбец B на целевом листе.

Формула в ячейке E3 на листе назначения:

=ЕСЛИОШИБКА(ИНДЕКС('Вставить данные'!$B$1:$K$4000,SMALL(IF('Вставить данные'!$B$1:$B$4000=$A$1,ROW('Вставить данные'!$ B$1:$B$4000)),ROWS($G$1:$G2)),6),"")

это должно взять DESC из столбца G на исходном листе и поместить его в столбец E на целевом листе.

Текущие результаты листов назначения:

ДЖО
ИДЕНТИФИКАТОР КОЛ-ВО МФР МОД DESC ПРИ я 2 2 2 2 2 ii 3 3 3 3 3 III
ЛПП
ИДЕНТИФИКАТОР КОЛ-ВО МФР МОД DESC ПРИ я 4 4 4 4 4 ii

Целевые листы желаемых результатов:

ДЖО
ИДЕНТИФИКАТОР КОЛ-ВО МФР МОД DESC ПРИ я 1 1 1 1 1 ii 2 2 2 2 2 III 3 3 3 3 3
ЛПП
ИДЕНТИФИКАТОР КОЛ-ВО МФР МОД DESC ПРИ я 4 4 4 4 4 ii 5 5 5 5 5

Почему бы просто не использовать функцию FILTER?

Ron Rosenfeld 27.04.2024 02:28
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
1
97
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я не уверен, почему вы не используете FILTER. (возможно, у вас нет MS365).

Но вы можете поместить формулу ниже в B3:

=IFERROR(INDEX('Paste-Data'!$A$1:$K$4000, SMALL(IF('Paste-Data'!$B$2:$B$4000 = $A$1, ROW('Paste-Data'!$B$2:$B$4000)),ROW(H1:H6)), {1,8,6,5,7,11}),"")

Номер строки, которую вы хотите выбрать:

SMALL(IF('Paste-Data'!$B$2:$B$4000 = $A$1, ROW('Paste-Data'!$B$2:$B$4000)), ROW(H1:H6))

Номер столбца, который вы хотите выбрать: {1, 8, 6, 5, 7, 11}

Результат выглядит так:

Потрясающе, спасибо. Я попробую это и дам вам знать!

Colin 29.04.2024 16:12

В вашей формуле используется ROW, а не ROWS, и номер вашей строки, начинающийся с $B$2 вместо $B$1 в SMALL (устранил мою проблему. Мне не удалось заставить работать массив выбора столбца вместо {1,4,7, и т. д.}, мне пришлось указать точный номер столбца для извлечения в каждом столбце dest. Не знаю, в чем разница и как вы получили показанный результат. В конце концов, у меня это не сработало. готовая формула для B3: =IFERROR(INDEX('Paste-Data'!$B$1:$K$4000,SMALL(IF('Paste-Dat‌​a'!$B$2:$B$4000=$A$1‌​, ROW('Вставить данные'!$B‌​$2:$B$4000)),ROW($H1‌​:$H$4000)),7)&"","")

Colin 29.04.2024 17:48

У вас нет MS365? В противном случае выбор нескольких строк и столбцов, вероятно, вам не подойдет. Или вы пытались ввести его как формулу массива? используя Ctrl + Shift + Enter? У меня нет Excel до 365, поэтому я не могу подтвердить себя.

rachel 30.04.2024 00:38

Если вы используете рабочий стол MS365, вам не нужно использовать ctrl+shift+enter. Просто поместите формулу в B3, и она прольется. Вы когда-нибудь пробовали использовать индекс для выбора нескольких строк и столбцов? очень простой способ проверить это =INDEX('Paste-Data'!A1:K6,{1;2},{3,4}). Вот как это выглядит:i.imgur.com/PF7a4nU.png (я использую Excel для Mac версии 16.86 (24042911), но уверен, что то, что работает на Mac, будет работать и в Windows)

rachel 01.05.2024 02:20

Я также пытаюсь не просто захватить целые столбцы, я использовал функцию массива, потому что мне нужно было извлекать только те данные, которые соответствуют критериям в этом столбце NAME.... Сейчас я смотрю на функцию FILTER. Похоже, он не способен переупорядочивать столбцы, это одна из тех новых функций типа Spill... если бы мои исходные данные и данные назначения совпадали, это было бы здорово, но я не могу понять, как переупорядочить ФИЛЬТР.

Colin 01.05.2024 14:38

возможно, ключевая информация, которую я упустил, заключается в том, что исходные данные будут часто меняться - я никогда не знаю, сколько строк в каждом столбце «Имя» у меня будет. Моя цель - иметь несколько листов, каждый с именем, и для каждого листа копировать только строки с совпадающим именем, а также копировать только те столбцы, которые мне нужны, и переупорядочивать эти столбцы... возможно, это сложнее, чем идеально. , но я пытаюсь взять экспортированные данные из одного программного обеспечения и автоматически отформатировать их для использования в другом программном обеспечении.

Colin 01.05.2024 15:05

Используйте HSTACK, чтобы изменить порядок столбцов, а затем используйте FILTER поверх переставленных столбцов. support.microsoft.com/en-us/office/…

rachel 01.05.2024 15:23

Как насчет этого?

Формула в ячейке B16:

=INDEX($C$1:$K$6;MATCH(INDIRECT("A"&ROW()-2-LEN($A16));$B$1:$B$6;0)-1+LEN($A16);MATCH(B$15;$C$1:$K$1;0))

Это вернет желаемый результат для любого пользователя (Джо, Боба).

Вам нужно обратить внимание на 2 вещи:

  1. Эта формула будет работать только в том случае, если ваши данные отсортированы так, как указано в исходных данных (по имени и идентификатору).
  2. Он использует INDIRECT, который является нестабильной функцией, поэтому, если вы используете его интенсивно, это может привести к перегрузке ваших рабочих листов.

Другие вопросы по теме

Ищете альтернативу COUNTIFS(), которая будет работать с динамическим диапазоном (например: вывод массива функции FILTER())
Как выделить уникальное значение из нескольких ячеек
Excel, есть ли формула для заполнения ячейки, если текст присутствует в другой ячейке, в противном случае она пуста, если в указанной ячейке нет текста?
Используя формулы массива Excel Office365, как удалить дубликаты, сохранив последнее значение?
Формула заполнения для игнорирования условий фильтра, если она пуста
Разделить текст на более мелкие и сгруппировать по каждому идентификатору
Группировка в Excel с использованием только формул
Формула Excel, необходимая для получения результатов для определенной серии
Как вернуть текст, а не только числа с массивами в Excel
Формула Excel =ЕСЛИ, использующая Today() в качестве отметки даты, заполняя ответ в нежелательных ячейках