Вы можете сделать это с помощью Power Query, доступного в Excel 2010 +
В Excel 2013, если у вас его нет, вам может потребоваться загрузить бесплатную надстройку Microsoft, чтобы включить ее.
Положите что-нибудь в красные блоки. Я просто использовал букву x
, но они должны быть непустыми
- Выберите ячейку в таблице
- Данные / Получить и преобразовать / Из таблицы / Диапазон
- Выберите столбец Даты и
Split column by delimiter
: - - Измените тип по локали
- вам нужно выбрать
Date
и локаль формат dd.mm.yy
- Я выбрал швейцарский эльзасский язык, но есть другие
- Выберите столбец с двумя датами и
Unpivot other columns
- Затем
Group By
столбец адреса и для агрегирования Min
столбца Dates.1 для даты начала Max
столбца Dates.2 для даты окончания
- Переместите столбцы в окончательный дизайн и переименуйте их при необходимости
- Сортируйте по столбцу адреса
Все это можно сделать из пользовательского интерфейса
M-код
let
Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Dates", type text}, {"Address 1", type text}, {"Address 2", type text}, {"Address 3", type text}, {"Address 4", type text}, {"Address 5", type text}}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Dates", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Dates.1", "Dates.2"}),
#"Changed Type with Locale" = Table.TransformColumnTypes(#"Split Column by Delimiter", {{"Dates.1", type date}, {"Dates.2", type date}}, "gsw-CH"),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type with Locale", {"Dates.1", "Dates.2"}, "Address", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Other Columns", {"Address"}, {{"Start Date", each List.Min([Dates.1]), type date}, {"Finish Date", each List.Max([Dates.2]), type date}}),
#"Sorted Rows" = Table.Sort(#"Grouped Rows",{{"Address", Order.Ascending}})
in
#"Sorted Rows"
Если вам нужно использовать формулы, должно работать следующее:
Разместите свой список Адреса sses in, например G18:Gn
В формулах ниже я определил таблицу и использовал структурированные ссылки, но вы можете использовать обычные ссылки, если вам нужно.
Я также, как и в выше, помещенный x
в цветные блоки. В этом случае это должен быть x
. Это не может быть просто non-blank
H18: =AGGREGATE(15,6,DATE(MID(Table3[Dates],7,2)+100,MID(Table3[Dates],4,2),LEFT(Table3[Dates],2))*1/(INDIRECT("Table3["&$G18&"]")="x"),1)
I18: =AGGREGATE(14,6,DATE(RIGHT(Table3[Dates],2)+100,MID(Table3[Dates],14,2),MID(Table3[Dates],10,2))*1/(INDIRECT("Table3["&$G18&"]")="x"),1)
И заполнять по мере необходимости.
Вы получаете те же результаты: