3

У меня есть данные в моей электронной таблице, например:

1

Куда данные идут в этом формате

[ID] | [Дата] | [Час] |

И у меня есть другая рабочая таблица, где я хочу, чтобы данные были такими:

2

Где я хочу, чтобы отображаемые данные были такими:

[Первый идентификатор DateRange + "-" + Последний идентификатор DateRange] | [Первый идентификатор DateRange + "-" + Последний идентификатор DateRange] | [Дата]

Как я могу сделать это, используя формулы или макросы VBA?

2 ответа2

2

Если вы не возражаете против использования PivotTable немного ...

Я бы запустил сводную таблицу на данные, поставил бы Date как метки строки и два ID в значениях. Первый идентификатор будет суммирован по минимуму, а второй по максимуму.

Затем вы можете скопировать / вставить (вставить значения и отформатировать дату) необходимую информацию на новый лист, где вы переместите столбец даты вправо. Вставьте два столбца между Max ID и датой, затем выполните простое объединение:

=CONCATENATE(A2," - ",B2)

(Я забыл пробелы на моем скриншоте ниже)

Эта формула также работает: =A2&" - "&B2

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

1

Если вы хотите первый и последний идентификатор, попробуйте

=INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,0))&" - "&INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,1))

где C1 на текущем листе имеет дату.

Если идентификаторы не в порядке возрастания, и вы хотите самый низкий идентификатор и самый высокий идентификатор для даты, попробуйте

=MIN(INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,0)):INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,1)))&" - "&MAX(INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,0)):INDEX(Sheet1!A:A,MATCH(C1,Sheet1!B:B,1)))

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