2016-01-07 2 views
1

Мне нужно выполнить задачу, подобную приведенной ниже схеме. Допустим, у меня есть файл с 10 продуктами продаж с 2000 по 2014 год, а наш внутренний рейтинг продукта имеет значение (от 1 до 10). Таким образом, файл данных имеет 4 переменные, название продукта, внутренний ранг, продажа, год, например, для product1:Таблица вычисляет разницу между первым и последним столбцами текущего вида таблицы

  1. product1, 5, 1000, 2000
  2. product1, 5, 2000, 2001
  3. product1 , 5, 3000, 2002
  4. ...

Некоторые продукты имеют данные о продажах отсутствующих в течение первых нескольких лет.

Таблица, на которой я сейчас находится на табличном столе, отображает каждый продукт подряд, а затем внутренний рейтинг, продажи каждого года с 2000 по 2014 год и 15-летний средний показатель за строку/продукт. например, для product1:

  1. product1, 5, 1000, 2000, 3000, (2003sales ... 2014sales), средняя продажа 2000-2014

Я хочу добавить еще один столбец, который показывает разницу между первым доступным годом продаж и 2014 годом, например, продукт1 имеет полные данные, поэтому эта колонка будет разницей в продажах между 2014 и 2000 годами. Продажи product2 начались в 2002 году, поэтому эта колонка будет отличаться между 2014 и 2002 годами.

I угадайте, какие коды LOD могут сделать трюк? Может ли кто-нибудь помочь? Стандартный расчет таблицы не помогает, или, может быть, я этого не понял. Спасибо!

+0

Является ли первый макет источником данных и вторым, как вы его разместили на листе? – Alexander

+0

да, вторая - таблица, которую я создаю на листе. Благодарю. – May

ответ

0

Вы можете сделать следующее:

  1. создать 4 вычисляемые поля [2000], [2001], [2013] и [2014] с формулой:

    IF [year] = 2000 THEN 
    [sales] 
    END 
    

    для каждого поля, заменить год с 2013 или 2014

  2. создать еще 4 расчетных поля [Sales2000], [Sales2001], [Sales2013] и [Sales2014]:

    {fixed ProductName: sum([Sales2000])} 
    

    снова изменить год соответственно

  3. создать вычисляемые поля для разности [diff2000-2014] и [diff2013-2014]:

    IF Isnull([Sales2000]) THEN 
    [Sales2014] - [Sales2001] 
    ELSE 
    [Sales2014] - [Sales2000] 
    END 
    

    и

    [Sales2014] - [Sales2013] 
    

Так что вы сделали

  1. Вы извлечь значения за годы, вам нужно

  2. Вы назначаете их всех строк с продуктом

  3. Вы вычислили разницу вы хотели

  4. Если вы хотите его сейчас на рабочем листе, перетащите поле [diff2013-2014] inton полка columsn и выберите MIN(), MAX() или AVG(), так как вы не хотите добавлять все различия.

+0

Привет, Александр, спасибо за коды. Не могли бы вы объяснить это для создания sales2000 и т. Д. Имя поля, которое должно быть создано, находится в самом коде? – May

+0

Какая часть неясна? – Alexander

+0

Кроме того, для некоторых продуктов данные за 2000 год отсутствуют, поэтому мне нужно использовать продажи 2001 года. Таким образом, добавленный столбец на самом деле представляет собой разницу между 2014 годом и в зависимости от того, какой из исходных лет доступен. Извините, что сначала не было ясно. – May