Создание диаграммы Ганта с накоплением в Tableau?

Я работаю с набором данных, который описывает продолжительность контрактов со списком компаний. Очевидно, что у всех контрактов есть дата начала и (минимальная) продолжительность. Однако некоторые контракты могут быть продлены. Вот пример данных:

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. Т.е. Я хочу отсортировать по максимально возможной продолжительности контракта (по возрастанию). Также необходимость реорганизовать все мои данные кажется немного утомительной.

Вот таблица и файл таблицы, с которым я работал. Я не замечаю чего-то действительно простого?


person Morten Nielsen    schedule 22.10.2015    source источник


Ответы (1)


Ваш подход 2 близок. вместо суммы (dateiff) в столбцах поместите StartDate как непрерывную. Затем поместите сумму (dateiff) на размер. Теперь вы можете отсортировать компании по возрастанию по сумме (dateiff). Иногда необходима реорганизация данных.

введите описание изображения здесь

person Bernardo    schedule 22.10.2015
comment
Отлично, спасибо - именно то, что я искал. Думаю, тогда мне просто нужно укусить и реорганизовать свои данные. - person Morten Nielsen; 22.10.2015
comment
как можно добиться правильной сортировки при такой настройке? Я хочу, чтобы самая ранняя дата начала была сверху в порядке убывания, пожалуйста, помогите - person Ahmed Hasn.; 13.06.2016
comment
ОК, решено, вам нужно добавить поле даты начала на полку строк, но в качестве первого поля. затем вы выбираете значение даты (степень детализации), которое вам нужно (мне нужен год, месяц, день), и вы его получаете. - person Ahmed Hasn.; 13.06.2016