1

Мои данные выглядят так:

Parameter   Location_A   Location_B   Location_C  Location_D 
A           1            0.3          0.2         0.1
B           0.9          0.3          0.1         0.1
C           1.1          0.2          0.3         0.2

У меня 365 параметров и 768 локаций.

Я хочу создать одну строку для каждой комбинации параметров и местоположения и показать результаты в третьем столбце (т. Е. 365 * 768 = 280 320):

Location       Parameter     Result
Location_A     A             1
Location_A     B             0.9
Location_A     c             1.1
Location_B     A             0.3
Location_B     B             0.3

И так далее. Есть простой способ сделать это? У меня есть строка заголовка, а затем 365 строк для каждого параметра и столбца B через ACO являются местоположениями.

Я просмотрел несколько вещей, но не могу найти ответ:как разделить одну строку на несколько строк с помощью Excel?

Разделение одной строки с несколькими столбцами на несколько строк

2 ответа2

0

Вот так.

ШАГ 1:

Наименование диапазонов для удобства. PARAMETERS - список параметров от А2 вниз; LOCATIONS - список мест, от B1 через; ДАННЫЕ - это большой квадрат от В2 до конца. Смотрите мой пример: ИМЕНИ РЯДОВ

ШАГ 2:

На другом листе настройте новую таблицу. Первый столбец выводит на печать все местоположения, и это перечисляет каждое местоположение столько раз, сколько есть параметры: РАСПОЛОЖЕНИЕ В ПЕРВОЙ КОЛОННЕ

Эта формула:

=INDEX(LOCATIONS,ROUNDUP((ROW()-1)/COUNTA(PARAMETERS),0))

Эта формула копирует вниз.

ШАГ 3:

Во втором столбце печатаются все параметры, и в нем каждый параметр перечисляется один раз, пока не останется больше списков (обратите внимание, что это количество соответствует количеству раз, чтобы перечислить каждое расположение в шаге 2). Теперь у вас есть полный список каждой комбинации местоположения / параметра, по одному разу: ПАРАМЕТРЫ ПЕЧАТИ ВТОРОЙ КОЛОННЫ

Эта формула:

=INDEX(PARAMETERS,MOD(ROW()-2,COUNTA(PARAMETERS))+1)

Эта формула копирует вниз.

ШАГ 4:

Отсюда, путь вперед должен быть ясен - теперь мы работаем с простым INDEX MATCH, чтобы найти данные на пересечении заданного местоположения и параметра. ВЕРНУТЬ ТАБЛИЦУ ДАННЫХ ДЛЯ КАЖДОЙ ЗАПИСИ

Эта формула:

=INDEX(DATA,MATCH(B2,PARAMETERS,0),MATCH(A2,LOCATIONS,0))

Эта формула копирует вниз.

ЗАКЛЮЧЕНИЕ:

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

ЗАМЕТКИ:

  • Это работает динамически, независимо от того, сколько столбцов / строк у вас есть в ваших данных (при условии, что вы корректируете именованные диапазоны по мере необходимости, если вы добавляете более 365 * 768 записей в спецификации этого вопроса).
  • Это не делает ничего особенного с отсутствующими или пустыми данными, хотя; Вы можете легко обернуть заключительное INDEX MATCH на шаге 4 с помощью IF (ISBLANK ()), чтобы получить что-то более полезное, чем «0».
  • Это НЕ предназначено для пропуска этих записей, что добавляет уровень сложности, который выходит за рамки этого вопроса.
-1

Попробуйте это в столбце результатов:

=OFFSET($A$1,MATCH(B7,$A$2:$A$4),MATCH(A7,$B$1:$E$1))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .