Примеры Межзаписных Функций Диаграмм
Примеры функции Top
Данные примеры относятся к функции top, но похожим образом могут применяться и к функциям bottom, first и last. Обратите внимание, что функции first и last употребляются только в сводных таблицах.
Пример 1:
Изучите прямую таблицу, расположенную ниже, на которой показано использование функции top в таблице с одним измерением:
Month | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|
- | 21 | 3 | 700% |
1 | 3 | 3 | 100% |
2 | 7 | 3 | 233% |
3 | 11 | 3 | 367% |
При наличии одного измерения функция top всегда ссылается к первой строке данных таблицы (Без учета строки Итого).
Обратите внимание на то, что использование функции top также обязательно оценивается в строке Итого, т.к. Итого явно относится к определенному сегменту столбца, а в этом случае – ко всему столбцу.
Пример 2:
Ниже приводится прямая таблица с двумя измерениями, первично отсортированная в поле Grp.
Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | 1 |
1 | A | 1 | 1 | 1 |
2 | A | 3 | 1 | 1 |
3 | A | 5 | 1 | 1 |
1 | B | 2 | 2 | 1 |
2 | B | 4 | 2 | 1 |
3 | B | 6 | 2 | 1 |
Функция top без классификатора total теперь возвращает выражение, оцененное в верхней строке во внутренней группе сортировки (В этом случае – в измерении Grp). Одно значение возвращается для Grp = A и одно для Grp = B.
Используя классификатор total и при наличии нескольких измерений, можно опять сослаться на самую верхнюю строку таблицы с тем же значением, которое возвращается для всех строк. Выражение будет оцениваться для сегмента столбца с интервалом во весь столбец.
Выражение с использованием функции top без классификатора total будет оцениваться как NULL в строке Итого, т.к. оно не может явно ассоциироваться с определенным сегментом столбца.
Сейчас мы конвертируем прямую таблицу, описанную выше, в сводную таблицу при включении всех Итогов.
Month | Grp | sum(Val) | top(sum(Val)) | top(total sum(Val)) |
---|---|---|---|---|
1 | A | 1 | 1 | 1 |
1 | B | 2 | 1 | 1 |
1 | Всего | 3 | 1 | - |
2 | A | 3 | 3 | 1 |
2 | B | 4 | 3 | 1 |
2 | Всего | 7 | 3 | - |
3 | A | 5 | 5 | 1 |
3 | B | 6 | 5 | 1 |
3 | Всего | 11 | 5 | - |
Всего | - | 21 | - | 1 |
Выражение с использованием функции top без классификатора total будет оцениваться как NULL в строке Итого, т.к. оно не может явно ассоциироваться с определенным сегментом столбца. Несмотря на это, все частичные суммы будут оцениваться для каждого сегмента столбца.
В выражении с классификатором total нет значений в частичных итогах, но это выражение возвращает значение в строке Общий итог.
Пример 3:
Изучите следующую прямую таблицу, отсортированную в поле Grp:
Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | - |
1 | A | 1 | 1 | 100% |
2 | A | 3 | 1 | 300% |
3 | A | 5 | 1 | 500% |
1 | B | 2 | 2 | 100% |
2 | B | 4 | 2 | 200% |
3 | B | 6 | 2 | 300% |
Мы можем изменить межполевой порядок сортировки так, чтобы диаграмма была первично отсортирована в поле Месяц. Таблица будет иметь следующий вид:
Month | Grp | sum(Val) | top(sum(Val)) | sum(Val) / top(sum(Val)) |
---|---|---|---|---|
- | - | 21 | - | - |
1 | A | 1 | 1 | 100% |
1 | B | 2 | 1 | 200% |
2 | A | 3 | 3 | 100% |
2 | B | 4 | 3 | 133% |
3 | A | 5 | 5 | 100% |
3 | B | 6 | 5 | 120% |
Примеры функции Above
Данные примеры относятся к функции above, но похожим образом могут применяться и к функциям below, before и after. Обратите внимание, что функции before и after употребляются только в сводных таблицах.
Пример 4:
Изучите прямую таблицу, расположенную ниже, на которой показано использование функции above в таблице с одним измерением:
Month | sum(Val) | above(sum(Val)) | sum(Val) / above(sum(Val)) |
---|---|---|---|
- | 21 | - | - |
1 | 3 | - | - |
2 | 7 | 3 | 233% |
3 | 11 | 7 | 157% |
В третьем столбце показано выражение sum(Val) с оценкой на одну строку выше текущей, что можно подтвердить сравнением со значениями для sum(val) во втором столбце. Функция above возвращает NULL на первую строку, т.к. выше нет строки, в которой можно оценить выражение. Функция above всегда возвращает NULL на все строки Итого.
В четвертом столбце показано наиболее типичное использование этой функции – вычисление разницы, например, между различными периодами времени.
Пример 5:
Изучите сводную таблицу с двумя измерениями, расположенную ниже:
Grp | Month | sum(Val) | above(sum(Val)) | above(total sum(Val)) |
---|---|---|---|---|
A | 1 | 1 | - | - |
A | 2 | 3 | 1 | 1 |
A | 3 | 5 | 3 | 3 |
A | Всего | 9 | - | - |
B | 1 | 2 | - | 5 |
B | 2 | 4 | 2 | 2 |
B | 3 | 6 | 4 | 4 |
B | Всего | 12 | - | - |
Всего | - | 21 | - | - |
Функция above без классификатора total (третий столбец) действует только в каждой группе сортировки. Значение NULL возвращается на верхнюю строку каждого сегмента столбца.
При добавлении классификатора total (четвертый столбец) весь столбец рассматривается в качестве одного сегмента столбца. Только верхняя строка возвращает NULL. Все строки Итого игнорируются и возвращают NULL.
Примеры функций RowNo и NoOfRows
В данном случае рассматриваются примеры употребления функций RowNo и NoOfRows, но похожим образом употребляются и функции ColumnNo и NoOfColumns. Обратите внимание, что функции ColumnNo и NoOfColumns употребляются только в сводных таблицах.
Пример 6:
Изучите сводную таблицу с двумя измерениями, расположенную ниже:
Month | Grp | RowNo() | RowNo(total) | NoOfRows() | NoOfRows(total) |
---|---|---|---|---|---|
1 | A | 1 | 1 | 2 | 6 |
1 | B | 2 | 2 | 2 | 6 |
1 | Всего | 0 | - | 2 | - |
2 | A | 1 | 3 | 2 | 6 |
2 | B | 2 | 4 | 2 | 6 |
2 | Всего | 0 | - | 2 | - |
3 | A | 1 | 5 | 2 | 6 |
3 | B | 2 | 6 | 2 | 6 |
3 | Всего | 0 | - | 2 | - |
Всего | - | - | 0 | - | 6 |
- Столбец 3 Функция RowNo возвращает номер строки в каждом сегменте столбца в группе сортировки. В строках подитогов возвращается число строк 0, т.к. эти итоги явно относятся к определенному сегменту столбца. В строке Общий итог возвращается NULL.
- Столбец 4 С классификатором total функция RowNo возвращает число строк в целом столбце. В строках подитогов возвращается значение NULL. В строке Общий итог возвращается 0.
- Столбец 5 Функция NoOfRows возвращает номер строк данных в каждом сегменте столбца в группе сортировки. В строках подитогов возвращается то же число, что и в строках данных. В строке Общий итог возвращается NULL.
- Столбец 6 С классификатором total функция NoOfRows возвращает число строк данных в целом столбце, которое является таким же, что возвращается в строке Общий итог. В строках подитогов возвращается NULL.