Я работаю с набором данных, который описывает продолжительность контрактов со списком компаний. Очевидно, что у всех контрактов есть дата начала и (минимальная) продолжительность. Однако некоторые контракты могут быть продлены. Вот пример данных:
Company contractStart minDuration firstProlong secProlong
Company x 27-11-2011 27-11-2014 27-11-2015 27-11-2016
Company y 29-11-2014 29-11-2015
Company z 01-04-2011 01-12-2011 01-12-2015 01-12-2017
Я хочу визуализировать их на диаграмме типа Ганта, которая имеет продолжительность по оси x и показывает соответствующие длины контрактов с возможными продлениями в виде своего рода гистограммы с накоплением. Вместе с тем я хочу отметить текущую дату чем-нибудь. Мне удалось это сделать в Excel. См. Изображение: .
Однако мне бы очень хотелось иметь возможность делать то же самое в Tableau, и я действительно не могу понять, как это сделать. До сих пор я работал с двумя разными подходами:
1-й подход
Здесь я перетаскиваю Company
на полку "Строки", а дату contractStart
на полку "Столбцы". Затем я создаю вычисляемое поле, которое вычисляет (с DATEDIFF
) разницу в днях между началом контракта и минимальной продолжительностью. Я могу перетащить его на полку Размер, установить тип метки на шкалу Ганта и получить что-то вроде этого:
Затем я могу перейти к вычислению разницы в датах между минимальной продолжительностью и 1-м продлением, а также для 1-й и 2-й продолжительности. Проблема здесь в том, что я не могу добавить эти вычисляемые поля на полку «Размер», так как она может содержать только одно за раз.
2-й подход
Здесь я реорганизую свои данные следующим образом:
Company Type startDate endDate
Company x minDuration 27-11-2011 27-11-2014
Company x firstProlong 27-11-2014 27-11-2015
Company x secProlong 27-11-2015 27-11-2016
Company y minDuration 29-11-2014 29-11-2015
Company y firstProlong
Company y secProlong
Company z minDuration 01-04-2011 01-12-2011
Company z firstProlong 01-12-2011 01-12-2015
Company z secProlong 01-12-2015 01-12-2015
Затем я создаю вычисляемое поле, чтобы найти разницу в днях между startDate
и endDate
. Я перетаскиваю его на полку «Столбцы» и перетаскиваю Company
на полку «Строки». Затем я перетаскиваю Type
на полку Color, устанавливаю тип метки на Bar и получаю что-то вроде этого:
Проблема здесь в том, что мне нужны даты по оси x, а не целые числа. Также мне нужно иметь возможность отсортировать диаграмму, как в моем первоначальном примере в Excel. Т.е. Я хочу отсортировать по максимально возможной продолжительности контракта (по возрастанию). Также необходимость реорганизовать все мои данные кажется немного утомительной.
Вот таблица и файл таблицы, с которым я работал. Я не замечаю чего-то действительно простого?