Bir **pivot tablo**, (veritabanı, iş zekası programı ya da veri tablosu gibi) daha geniş bir tabloyu özetleyen istatistik tablosudur. Bu özet, pivot tabloyu anlamlı bir şekilde gruplayan toplamları, ortalamaları veya diğer istatistikleri içerebilir.

Pivot tablolar veri işlemede bir tekniktir. Yararlı bilgilere dikkat çekmek için istatistikleri düzenler ve yeniden düzenler (veya "pivotlar").

*Pivot tablo* genel bir terim olsa da, Microsoft 1994 yılında Amerika Birleşik Devletleri'nde *PivotTable* ticari markasını almıştır.

Tarihçe
-------

*Pivot Table Data Crunching (Pivot Tablo ile veri işleme)* kitabında  Bill Jelen ve Mike Alexander, Pito Salas'ı "pivot tabloların babası" olarak adlandırmaktadır. Salas, ileride Lotus Improv olarak piyasaya çıkacak yeni bir programın kavram tasarımı üzerinde çalışırken, e-tabloların veri kalıplarına (ya da örüntülerine) sahip olduğunu fark etmiştir. Kullanıcıların bu kalıpları tanımasına yardımcı olabilecek bir araç, gelişmiş veri modellerinin hızlı bir şekilde oluşturulmasına yardımcı olabilir. Improv ile kullanıcılar kategori kümelerini tanımlayıp saklayabilir, ardından kategori adlarını fare ile sürükleyerek görünümlerini değiştirebilir. Bu temel işlevsellik, pivot tablolar için bir model sağlayacaktır.

Lotus Development, Improv'u 1991 yılında NeXT platformunda piyasaya sürdü. Improv'un piyasaya sürülmesinden birkaç ay sonra Brio Technology, DataPivot adında bağımsız bir Macintosh uygulaması yayınladı (teknoloji daha sonra 1999'da patentlendi). Borland, 1992 yılında DataPivot teknolojisini satın aldı ve kendi elektronik tablo uygulaması Quattro Pro'ya uyguladı.

1993 yılında Improv'un Microsoft Windows sürümü çıktı. 1994'ün başlarında Microsoft Excel 5  pazara "PivotTable" adı verilen yeni bir işlevsellik getirdi. Microsoft, Excel'in sonraki sürümlerinde bu özelliği daha da geliştirdi:

* Excel 97'de yeni ve geliştirilmiş bir PivotTable Sihirbazı, hesaplanan alanlar oluşturma yeteneği ve geliştiricilerin pivot tabloları oluşturmak ve değiştirmek için Visual Basic for Applications makroları yazmalarına izin veren yeni pivot önbellek nesneleri içeriyordu.
* Excel 2000, pivot tablo verilerini grafik olarak göstermek için "Pivot Grafikleri" ni tanıttı.

2007'de Oracle Corporation, `PIVOT` ve `UNPIVOT` operatörlerini Oracle Database 11g'de kullanıma sunmuştur.

Çalışma Mekaniği
----------------

Tipik veri girişi ve saklama için, veriler genellikle *düz* tablolarda görünür, yani örnek e-tablonun gömlek türlerine ilişkin verileri gösteren aşağıdaki bölümünde olduğu gibi yalnızca sütunlardan ve satırlardan oluşur:

Bu gibi tablolar birçok veri öğesi içerebilirken, bunlardan özetlenmiş bilgi almak zor olabilir. Bir pivot tablo, verileri hızlı bir şekilde özetlemeye ve istenen bilgileri vurgulamaya yardımcı olabilir. Pivot tablonun kullanımı son derece geniştir ve duruma bağlıdır. Sorulması gereken ilk soru "Ne arıyorum?" olmalıdır. Buradaki örnekte, "Her *Sevk Tarihi* için her *Bölge'de* kaç *Adet* *sattık?* "sorusuna yanıt bulunabilir:

Bir pivot tablo genellikle *satır*, *sütun* ve *veri* (veya *olgu*) alanlarından oluşur. Bu durumda, sütun *Gönderim Tarihi*, satır *Bölge'dir* ve görmek istediğimiz veriler (toplam) *Birimlerdir*. Bu alanlar, toplam, ortalama, standart sapma, sayım vb. çeşitli birleştirmelere izin verir. Bu durumda, gönderilen toplam birim sayısı burada bir *toplam* birleştirmesi kullanılarak görüntülenir.

Uygulama
--------

Yukarıdaki örneği kullanarak, yazılım belirlenen *Bölge* için tüm farklı değerleri bulur. Verilen örnekte bunlar: *Kuzey*, *Güney*, *Doğu*, *Batı* bölgeleridir. Ayrıca, *Gönderim Tarihi* için tüm farklı değerleri bulacaktır. Toplama türüne göre, *toplam*, *Birimin* gerçeğini, miktarlarını özetleyecek ve bunları çok boyutlu bir grafikte gösterecektir. Yukarıdaki örnekte, ilk referans noktası 66'dır. Bu sayı, hem *Bölge'nin* *Doğu* hem de *Sevk Tarihinin* *1/31/2005* olduğu tüm kayıtları bularak ve nihai sonuç elde etmek için bu kayıt koleksiyonunun *Birimlerini* (*yani* E2 ila E7 hücreleri) ekleyerek elde edilmiştir.

Pivot tablolar otomatik olarak oluşturulmaz. Örneğin, Microsoft Excel'de önce orijinal tablodaki verilerin tamamını seçmeli ve ardından Ekle sekmesine gitmeli ve "Pivot Tablo" (veya "Pivot Grafiği") seçilmelidir. Kullanıcı daha sonra pivot tabloyu mevcut bir sayfaya ekleme veya pivot tabloyu barındırmak için yeni bir sayfa oluşturma seçeneğine sahiptir. Veride bulunan tüm sütun başlıklarını listeleyen kullanıcıya bir pivot tablo alanı listesi sağlanır. Örneğin, bir tablo bir şirketin satış verilerini temsil ediyorsa satış tarihi, satış elemanı, satılan ürün, öğenin rengi, satılan birimler, birim fiyat ve toplam fiyatı içerebilir. Bu, verileri daha kolay erişilebilir olmasını sağlar. 

| Satış tarihi | Satış elemanı | Satılan ürün | Ürün rengi | Satış sayısı | Birim fiyatı | Toplam fiyat |
| --- | --- | --- | --- | --- | --- | --- |
| 10/01/13 | Jones | Not defteri | Siyah | 8 | 25000 | 200000 |
| 10/02/13 | prens | Dizüstü | Kırmızı | 4 | 35000 | 140000 |
| 10/03/13 | George | Fare | Kırmızı | 6 | 850 | 5100 |
| 10/04/13 | Larry | Not defteri | Beyaz | 10 | 27000 | 270000 |
| 10/05/13 | Jones | Fare | Siyah | 4 | 700 | 2800 |

Oluşturulacak alanlar çalışma sayfasının sağ tarafında görünür olacaktır. Varsayılan olarak, pivot tablo düzeni tasarımı bu listenin altında görünecektir.

Listedeki alanların her biri dört seçeneğe sahip olan bu düzene sürüklenebilir:

1. Rapor filtresi
2. Sütun etiketleri
3. Satır Etiketleri
4. Toplama değerleri

### Rapor filtresi

Rapor filtresi, tüm tabloya filtre uygulamak için kullanılır. Örneğin, "Ürün Rengi" alanı bu alana sürüklenirse, oluşturulan tabloya tablonun üstüne bir rapor filtresi eklenir. Bu rapor filtresinde açılır seçenekler bulunur (yukarıdaki örnekte Siyah, Kırmızı ve Beyaz). Bu açılır listeden bir seçenek seçildiğinde (bu örnekte "Siyah"), görünür olacak tablo yalnızca "Ürün Rengi = Siyah" olan satırlardan gelen verileri içerecektir.

### Sütun etiketleri

Sütun etiketleri, pivot tabloda gösterilmesi gereken bir veya daha fazla sütuna filtre uygulamak için kullanılır. Örneğin, "Satış elemanı" alanı bu alana sürüklenirse, oluşturulan tablo "Satış Elemanı" sütunundaki değerlere sahip olur, *yani*, bir kişinin "Satış elemanı" sayısına eşit sayıda sütun olacaktır. Verilerin Toplamı ayrı bir sütun olarak eklenir. Yukarıdaki örnekte, bu talimat, her satış elemanı için bir tane ve Genel Toplam olmak üzere, tabloda beş sütun oluşturacaktır. Verilerin üstünde - sütun etiketleri - adlı bir filtre olacak  ve pivot tablo için belirli bir satış elemanı seçilebilir veya seçimi kaldırılabilir olacaktır.

Hiçbir sayısal alan seçilmediğinden bu tabloda herhangi bir sayısal değer olmayacaktır, ancak seçildiğinde, değerler "Genel toplam" sütununda otomatik olarak güncellenecektir.

### Satır Etiketleri

Satır etiketleri, pivot tabloda gösterilmesi gereken bir veya daha fazla satıra filtre uygulamak için kullanılır. Örneğin, "Satış elemanı" alanı bu alana sürüklenirse, oluşturulan diğer çıktı tablosunda "Satış elemanı" sütunundaki değerler bulunur, *yani* bir satırda "Satış Personeli" sayısına eşit sayıda satır bulunur. Ayrıca "Genel Toplam" başlıklı ek bir satır da olacaktır. Yukarıdaki örnekte bu talimat, her satış elemanı için bir tane ve Genel Toplam olmak üzere, tabloda beş satır oluşturacaktır. Verilerin üstünde - Satır Etiketleri - adlı bir filtre olacak, bu filtre ile Pivot tablosu için belirli bir satış görevlisi seçilebilir veya seçimi kaldırılabilir olacaktır.

Hiçbir sayısal alan seçilmediğinden, bu tabloda herhangi bir sayısal değer olmayacaktır, ancak seçildiğinde, değerler "Genel Toplam" Satırında otomatik olarak güncellenecektir.

### Değerlerin Toplanması

Bu genellikle farklı hesaplama türleri için kullanılabilecek sayısal değerleri olan bir alanı alır. Ancak, metin değerlerini kullanmak da yanlış olmaz; metin değerlerinin kullanılması durumunda toplam değeri yerine eleman sayısı verecektir. Dolayısıyla, yukarıdaki örnekte, "Satış sayısı" alanı, "Satış elemanı" satır etiketi ile birlikte bu alana sürüklenirse, talimat "Satış sayısı toplamı" adlı her bir satış elemanının sattığı ürün sayısını gösteren yeni bir sütun ekleyecektir. 

| Satır Etiketleri | Satış sayısı toplamı |
| --- | --- |
| Jones | 12 |
| prens | 4 |
| George | 6 |
| Larry | 10 |
| Genel Toplam | 32 |

Uygulama desteği
----------------

Pivot tablolar veya pivot işlevselliği, diğer elektronik tablo uygulamalarının ve bazı veritabanı yazılımlarının ayrılmaz bir parçasıdır ve diğer veri görselleştirme araçlarında ve iş zekası paketlerinde bulunur.

Elektronik tablo uygulamaları
* Microsoft Excel, PivotChart'lar aracılığıyla görselleştirilebilen PivotTable'ları destekler.
* LibreOffice Calc pivot tabloları destekler. 3.4 sürümünden önce bu özelliğe "DataPilot" adı verilmiştir.
* Google E-Tablolar yerel olarak pivot tabloları destekler.

Veritabanı desteği
* Nesne-ilişkisel veritabanı yönetim sistemi olan PostgreSQL, *tablefunc* modülünü kullanarak pivot tablolar oluşturulmasına izin verir.
* Bir MySQL türevi olan MariaDB, CONNECT depolama motorunu kullanarak pivot tablolara izin verir.
* Microsoft Access, "çapraz tablo" adı altında özet sorguları destekler.
* Oracle veritabanı PIVOT işlemini destekler.
* Microsoft SQL sunucusu gibi pivot işlevlerini doğrudan desteklemeyen bazı popüler veritabanları ve SQLite genellikle gömülü işlevler, dinamik SQL veya alt sorgular kullanarak pivot işlevselliğini simüle edebilir. Bu gibi durumlarda pivotlama ile ilgili sorun genellikle, sorgunun yürütülmeye başladığı zaman çıktı sütunlarının sayısının bilinmesi gerektiğidir; pivotlama için bu mümkün değildir çünkü sütun sayısı verinin kendisine bağlıdır. Bu nedenle, adlar sabit olarak kodlanmalıdır veya yürütülecek olan sorgu, verilere dayanarak dinamik olarak (her kullanımdan önce anlamına gelir) oluşturulmalıdır.

Web uygulamaları
* Bir Ajax altyapısı olan ZK, pivot tabloların Web uygulamalarına yerleştirilmesine de olanak tanır.

Programlama dilleri ve kütüphaneler
* Tablo şeklindeki verilerle çalışmaya uygun programlama dilleri ve kütüphaneleri, pivot tabloların oluşturulmasına ve değiştirilmesine izin veren işlevler içerir. Python veri analizi araç takımı pandas *pivot\_table* işlevine ve pivot tablolarının bölümlerini elde etmek için yararlı olan *xs* yöntemine sahiptir.

Çevrimiçi analitik işleme
-------------------------

Excel pivot tabloları, bir Excel elektronik tablosundan veri almak yerine çevrimiçi bir analitik işleme (OLAP) sunucusunu veri almak için doğrudan sorgulama özelliğini içerir. Bu yapılandırmada, pivot tablo OLAP sunucusunun basit bir istemcisidir. Excel'in PivotTable'ı yalnızca Microsoft'un Analiz Hizmetine değil, herhangi bir Analiz için XML (XMLA) OLAP standardıyla uyumlu sunucuya bağlanmaya da izin verir.

Ayrıca bakınız
--------------

* Aggregate function
* Business reporting
* Comparison of office suites
* Comparison of OLAP servers
* Contingency table
* Crosstab
* Data drilling
* Veri madenciliği
* Data visualization
* Data warehouse
* Extract, transform, load
* Fold (higher-order function)
* OLAP cube
* Relational algebra

Kaynakça
--------

1. ↑  "United States Trademark Serial Number 74472929". 27 Aralık 1994. 7 Ocak 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Şubat 2013.
2. ↑  
Jelen, Bill; Alexander, Michael (2006). *Pivot table data crunching Business solutions* (İngilizce). Indianapolis, Indiana. ISBN 0-7897-3435-4.
3. ↑  *Cross tab analysis and reporting method*, 18 Temmuz 2019 tarihinde kaynağından arşivlendi, erişim tarihi: 2 Mayıs 2020
4. ↑  
Keith Darlington (6 Ağustos 2012). *VBA For Excel Made Simple* (İngilizce). Routledge. ISBN 9781136349775.
5. ↑  
Sharanam Shah; Vaishali Shah (2008). *Oracle for Professionals - Covers Oracle 9i, 10g and 11g W CD* (İngilizce). Shroff Publishers. ISBN 9788184045260.
6. ↑  "Make an Excel Pivot Table in 2 Steps". *The Desktop School*. 27 Haziran 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Temmuz 2015.
7. ↑  Debra Dalgleish (1 Aralık 2007). *Beginning PivotTables in Excel 2007* (İngilizce). Apress. ISBN 9781430204336.
8. ↑  "Create & use pivot tables". 1 Temmuz 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020.
9. ↑  "PostgreSQL: Documentation: 9.2: tablefunc". *postgresql.org*. 23 Kasım 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020.
10. ↑  "CONNECT Table Types - PIVOT Table Type". *mariadb.com*. 4 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020.
11. ↑  "pandas.pivot\_table". 1 Nisan 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mayıs 2020.

Konuyla ilgili yayınlar
-----------------------

* *A Complete Guide to PivotTables: A Visual Approach* (ISBN 1-59059-432-0)   (slashdot.org'da derinlemesine inceleme 18 Temmuz 2019 tarihinde Wayback Machine sitesinde arşivlendi. )
* *Excel 2007 PivotTables and PivotCharts: Visual blueprint* (ISBN 978-0-470-13231-9)
* *Pivot Table Data Crunching* (Business Solutions) (ISBN 0-7897-3435-4)
* *Beginning Pivot Tables in Excel 2007* (ISBN 1-59059-890-3)