- Pivot table là tính năng cốt lõi biến bảng tính thành công cụ phân tích, giúp tóm tắt nhanh dữ liệu quy mô lớn mà không cần viết mã hay dùng toán học nâng cao
- Pito Salas của Lotus đã nghĩ ra một công cụ dựa trên thao tác nhấp chuột để thay thế sự bất tiện của việc phải viết các công thức phức tạp khi người dùng muốn tạo thống kê tóm tắt theo danh mục và bảng chéo
- Steve Jobs đã nhìn ra tiềm năng của tính năng này trong quá trình tìm kiếm phần mềm sát thủ để tạo nhu cầu cho máy tính NeXT, từ đó dẫn tới việc phát triển Lotus Improv
- Flexible views của nhóm Lotus sau đó được đưa vào Lotus 1-2-3 và Excel, và cái tên pivot table trở nên phổ biến trong Excel
- Ngày nay, pivot table được dùng rộng rãi trong Excel và Google Sheets, có thể nén dữ liệu hàng trăm nghìn dòng thành báo cáo tóm tắt một trang chỉ với vài cú nhấp chuột
Công cụ tóm tắt dữ liệu không cần công thức
- Pivot table là tính năng bảng tính giúp người dùng phổ thông phân tích nhanh các tập dữ liệu lớn
- Ngay cả khi không có kỹ năng lập trình hay kiến thức toán học cao, người dùng vẫn có thể trỏ và nhấp chuột để tóm tắt dữ liệu
- Nhà đồng sáng lập Apple Steve Jobs cũng xuất hiện như một người nhanh chóng nhận ra giá trị của tính năng này
Lịch sử phát triển dẫn tới NeXT và Lotus Improv
- Năm 1985, sau khi không thể đánh bại IBM trên thị trường máy tính doanh nghiệp, Jobs bị gạt khỏi vị trí chủ tịch hội đồng quản trị Apple và ngay sau đó lập ra NeXT để một lần nữa thách thức IBM
- Khi chuẩn bị cho chiếc máy tính NeXT ra mắt vào năm 1988, Jobs đang tìm kiếm phần mềm sát thủ để tạo nhu cầu cho sản phẩm
- Jobs cho rằng thành công lớn của Apple II ra mắt năm 1979 phần lớn nhờ vào VisiCalc, phần mềm bảng tính phổ biến đầu tiên
- Trong quá trình gặp Lotus, hãng tạo ra phần mềm bảng tính nổi tiếng Lotus 1-2-3 cho máy tính IBM, Jobs đã tiếp cận phiên bản sơ khai của pivot table
- Khi đó, Pito Salas ở bộ phận R&D của Lotus quan sát cách mọi người dùng bảng tính để tính toán thống kê tóm tắt theo danh mục, tức là các bảng chéo
- Chẳng hạn, một công ty bán xe đạp có thể muốn xem số lượng bán theo tháng hoặc doanh thu theo quốc gia
- Khi ấy, người dùng phải tự viết các công thức phức tạp nên vừa phiền toái vừa dễ sai
- Salas kết luận rằng cần có phần mềm cho phép lấy thống kê tóm tắt bằng thao tác nhấp chuột thay vì nhập công thức
- Nhóm Lotus gọi công cụ này là flexible views; còn tính năng tương tự trong Microsoft Excel và Google Sheets ngày nay được gọi là pivot table
Phản ứng của Jobs và quá trình thương mại hóa
- Khi nhóm Lotus cho Jobs xem nguyên mẫu ban đầu, theo lời Salas, Jobs coi đó là “thứ tuyệt vời nhất”
- Jobs đã thuyết phục Lotus phát triển phần mềm pivot table dành riêng cho máy tính NeXT
- Kết quả là Lotus Improv
- Dù máy tính NeXT thất bại về mặt thương mại, Lotus Improv vẫn để lại ảnh hưởng lớn
- Thành phần flexible views của Improv sau đó được đưa vào Lotus 1-2-3 và Excel
- Excel thực ra là sản phẩm đầu tiên sử dụng thuật ngữ pivot table
- Bill Jelen, evangelist của Excel và đồng tác giả cuốn Pivot Table Data Crunching, gọi Salas là “cha đẻ của pivot table”
- Salas xem đóng góp của mình cho pivot table là một trong những thành tựu khiến ông hài lòng nhất trong đời, nhưng cũng cho rằng đó là kết quả được xây trên nền tảng của nhiều người khác
Ứng dụng trong Excel và Google Sheets
- Hiện nay, pivot table là một trong những tính năng quan trọng và được dùng thường xuyên nhất trong bộ công cụ của người dùng bảng tính nâng cao
- Jelen cho biết pivot table có thể tạo ra báo cáo tóm tắt một trang từ dữ liệu hàng trăm nghìn dòng chỉ với 4~6 cú nhấp chuột, và đó là cách nhanh nhất để tìm câu trả lời trong các tập dữ liệu lớn
- Rất khó biết chính xác số người dùng Excel trong công việc hằng ngày, nhưng số người dùng Excel trên toàn thế giới ở quy mô hàng trăm triệu
- Pivot table thường đứng đầu hoặc gần đầu trong danh sách những tính năng hữu ích nhất của Excel
- Các nhà phân tích dữ liệu dùng pivot table cho nhiều mục đích như y tế công cộng, tăng trưởng kinh tế và phân tích hiệu quả quảng cáo
- Justine Shakespeare, quản lý chương trình cấp cao của tổ chức phi lợi nhuận về quyền lao động Verité, dùng pivot table để phân tích dữ liệu khảo sát phỏng vấn lao động di cư trong chuỗi cung ứng toàn cầu
Ví dụ thực tế và tài liệu học tập
- Một phóng viên của Quartz cần tóm tắt tổng lượng kiều hối nửa đầu năm cho từng năm từ dữ liệu kiều hối hàng tháng từ Mỹ sang Mexico kể từ năm 1995
- Có thể lấy các con số cần thiết bằng cách chèn pivot table, chọn dữ liệu cần dùng và lọc bỏ những tháng không cần
- Nếu muốn học thêm cách dùng pivot table, bạn có thể xem video của “Excel ninja” Cody Baldwin
- Người dùng Google Sheets có thể tham khảo bài giới thiệu về pivot table của chuyên gia Sheets Ben Collins
1 bình luận
Ý kiến trên Hacker News
Cuối tuần này tôi mới học được rằng có thể dùng hàm FILTER để chia hàng/ô thành nhóm dựa trên giá trị ô
=FILTER(Stories!B2:D13,Stories!F2:F13=A2)Đối số đầu tiên
Stories!B2:D13là phạm vi ô chứa các story, còn đối số thứ haiStories!F2:F13=A2là cột dùng để so sánh từng ô với giá trịA2. Các hàng khớp sẽ được sao chép tới vị trí đặt công thức=FILTERTôi đang dùng nó để tự động sắp xếp danh sách story theo từng sprint, và nó hữu ích cho các việc như lập kế hoạch increment chương trình
Một công thức Excel hữu ích khác tôi mới học gần đây là
=IF(NOT(ISBLANK(A2)),HYPERLINK("https://jira-instance.atlassian.net/browse/…),"")Nếu
A2không trống, nó gắn giá trị đó vào cuối URL và hiển thị liên kết với văn bản làPROJECT-cộng với giá trịA2. Có lẽ có thể làm đẹp hơn bằng Emacs và org-mode, nhưng vì phải chia sẻ với những người phụ trách công việc nên Excel là phù hợpNó giúp ghi lại cách đã làm để lấy số lượng hàng
Pivot table dựa trên SSAS cube có thể là công cụ phân tích self-service tốt nhất mà tôi từng thấy. “Tốt nhất” ở đây được đánh giá theo mức độ người dùng thực sự sử dụng
Khả năng khiến người dùng nghiệp vụ dùng ngay trong môi trường họ đã có là cực kỳ lớn đối với việc áp dụng thực tế, đặc biệt khi so với những thứ như Looker. Looker còn tệ vì nhiều lý do khác nữa
Hơn nữa, 9 trên 10 lần mọi người muốn thêm các phép biến đổi hoặc tính toán nhẹ vào dữ liệu, nên không gì tốt bằng thứ đã có sẵn trong Excel
Điều đáng tiếc là gần như không có hỗ trợ OSX, và viết MDX thì thật sự đau khổ
Tôi cung cấp thứ này cho các PM của sản phẩm mình phụ trách, và chỉ bằng pivot, không cần viết SQL riêng, họ đã có thể trả lời rất nhiều câu hỏi
Tôi khá thường nghĩ đến nó khi nói về các công cụ phân tích xuất sắc trong lĩnh vực dữ liệu. Ngay cả các công cụ BI đã phát triển tốt như metabase cũng không xử lý dimension tốt bằng pivot table
Chúng tôi làm thêm một chút phần web để xử lý quyền và lưu view, nhưng tổng thời gian phát triển có lẽ chưa đến một tuần
Từ Looker Explore cũng có thể tải xuống CSV hoặc Excel, nên tôi thắc mắc ở đó còn thiếu điểm gì
Pivot table thực ra gần với một phép xấp xỉ nghèo nàn của spreadsheet đa chiều, ví dụ như Lotus Improv từng có: https://instadeq.com/blog/posts/no-code-history-lotus-improv...
Mô hình spreadsheet là một ví dụ hay. Excel có thể là thứ tốt nhất trong Microsoft Office, nhưng hệ quả là nếu Word không đủ tốt cho desktop publishing thì thường bạn phải chuyển sang InDesign, mà nếu không phải chuyên gia xuất bản thì lựa chọn đó nhiều khi quá tay
Tôi dùng Anaplan hằng ngày trong công việc, và nếu có một phiên bản SaaS hiện đại trên cloud của Improv thì cảm giác chính là như thế này. Lý do nó trở thành công ty trị giá hàng tỷ đô có vẻ là vì họ không nhắm trực diện vào thị trường spreadsheet, mà tiếp cận theo cách phối hợp tốt với spreadsheet
Kết luận của bài viết về Improv là sai lầm chiến lược cốt lõi là cố bán Improv cho thị trường spreadsheet hiện hữu. Nếu bán cho phân khúc nơi mô hình có cấu trúc hơn là ‘tính năng’ chứ không phải ‘bug’, Lotus đã có thời gian để học, cải thiện và tinh chỉnh mô hình nhằm làm hài lòng cả thị trường lớn hơn; có vẻ Anaplan đã không mắc sai lầm này. Họ tạo ra một ngách trong thị trường EPM, tức quản lý hiệu suất doanh nghiệp
Đến một lúc nào đó phải thừa nhận là abstraction đã chọn sai. Nó để lại cảm giác Zalgo rất mạnh
Lúc đó tôi không biết pivot table là một cách tiếp cận khác cho khái niệm ấy
Một lý do khác khiến tôi bỏ spreadsheet là hiệu năng. Tôi không nhớ Improv tốt hay tệ ra sao ở mặt này, nhưng các dataset tôi xử lý khi đó không hợp với spreadsheet, nên có lẽ tôi cũng sẽ không tiếp tục dùng
Dù vậy, có vẻ họ đã gặp khá nhiều khó khăn trong việc giải thích pivot table là gì, và liệu chỉ riêng tính năng đó có đủ lý do để chuyển sang một ứng dụng mới và một nền tảng phần cứng mới hay không
Trong Google Ads, chúng tôi đã tạo ra rất nhiều dashboard trông bắt mắt, nhưng khi nghiên cứu người dùng thì khá rõ rằng rốt cuộc thứ mọi người muốn chỉ là xem dữ liệu của mình dưới dạng pivot table
Xuất ra spreadsheet + pivot table cho phép làm tất cả những việc đó. Một nhân viên văn phòng tương đối thành thạo có thể làm mà không phải đi qua vòng lặp bất tận backlog-đặc tả-sprint-phát triển-kiểm thử-đặc tả lại-sprint
Nếu không dùng để xử lý công việc được thì trông bắt mắt cũng chẳng ai quan tâm. Hơn nữa, cái đẹp rất chủ quan. Những chỗ đội ngũ tưởng là đang tạo thêm giá trị thực ra lại đang lãng phí thời gian
Không lâu sau tôi nghỉ và chuyển sang đội Google Sheets
Microsoft đã trực tiếp đánh cắp pivot table từ công ty cũ của tôi, Brio Technology, và sản phẩm DataPivot của họ: https://en.wikipedia.org/wiki/Brio_Technology
Theo CEO, Microsoft đã gọi ông ấy đến Redmond để đưa ra một đề nghị mua lại công ty thấp đến mức xúc phạm, và đe dọa rằng nếu từ chối thì họ sẽ tự làm sản phẩm của mình để khiến Brio phá sản. Ông ấy từ chối, và sau đó MS thêm pivot table vào Excel
Bài viết cũng nhắc đến Lotus, có vẻ họ đã tạo ra một sản phẩm tương tự vào khoảng cùng thời gian. Những người sáng lập Brio cũng từng liên quan đến một công ty tên Metaphor, nên có lẽ một phần ý tưởng đã phát triển từ đó
Sản phẩm của Brio đi kèm một cơ sở dữ liệu mẫu chứa nội dung hầm rượu vang của CEO, và chính dữ liệu đó cũng xuất hiện trên hộp Microsoft Office thời kỳ đầu
Tuy nhiên Stac có bằng sáng chế, và đã thuê luật sư kiện Microsoft vì xâm phạm bằng sáng chế. Microsoft cũng không chịu lùi bước dễ dàng, nhưng sau khi tòa phán rằng cả hai bên đều cần giấy phép để phát hành sản phẩm, Stac đã đến gặp các khách hàng OEM lớn và đề nghị cấp phép
Hoặc phải nhận giấy phép bằng sáng chế, hoặc không thể xuất xưởng sản phẩm; khi các OEM gây áp lực lên Microsoft, điều đó dẫn đến một thỏa thuận không quá tệ cho Stac. Tôi xem đây là một trong những ví dụ tốt nhất về việc bằng sáng chế phần mềm có thể giúp ích cho cạnh tranh
Khái niệm tổng hợp các cột dữ liệu đã phân loại không phải do Brio Technology phát minh
Nhưng tôi nghĩ vấn đề lớn là nó không phải một phần của Lotus 123. Vì vậy khi Excel đưa pivot table trực tiếp vào spreadsheet, nó trở nên hữu ích hơn nhiều. Ít nhất là với tôi
Tôi là kỹ sư và cũng quen với SQL, nhưng khả năng thao tác nhanh trong Excel và tạo pivot table ngay tại chỗ đã giúp ích rất nhiều cho sự nghiệp của tôi. Đặc biệt là khi tôi chuyển dần sang mảng sản phẩm và quản lý kinh doanh
Pivot table cho phép xem rất nhanh các phân rã theo nhiều chiều, xoay chuyển phân tích qua lại và ra quyết định nhanh. Ngoài các công cụ hiện có cho những miền đã được định nghĩa rõ, không có nhiều thứ sánh được với nó
Tôi có thể chạy truy vấn SQL nhanh hơn nhiều so với việc bấm trong Excel, và việc sao chép truy vấn từ lịch sử rồi dán lại cũng dễ hơn so với căn chỉnh lại toàn bộ định dạng trong sheet Excel về sau, nên khả năng tái lập cũng tốt hơn
Nhưng việc chuyển dữ liệu từ spreadsheet sang database thường là quá mức cần thiết, nên tôi nghĩ ngay cả kỹ sư dùng pivot table cũng không phải lựa chọn tệ
Tôi luôn dùng thứ này trong Pandas. Vừa rồi tôi cũng dạy một buổi học liên quan, và một khi hiểu cú pháp thì nó rất hữu ích
Những công cụ thông minh như DuckDB nhận ra sự hữu ích của nó cũng như nỗi đau khi làm việc này bằng SQL thông thường, nên đã thêm PIVOT vào phần triển khai. Cực kỳ hữu ích
pivot_longervàpivot_wider; giá mà Postgres cũng có những thứ như vậyHy vọng tình hình đã khá hơn. Vì pivot table thật sự rất hữu ích
Nó cũng tạo SQL, và nhờ đó tôi đã học được một chút SQL
Vì vậy tôi thắc mắc pivot table chính xác là gì. Chưa từng dùng, cũng chưa từng thấy, và video nhúng trong trình duyệt cũng không tải được
Điều tôi học được từ bài này chỉ là nó là một cách dễ để hiển thị dữ liệu trong bảng tính, và có thể đã được phát minh ở Lotus
Tôi vẫn không hình dung được thực tế nó làm gì và dùng như thế nào
Cá nhân tôi thấy, một cách nghịch lý, nó vừa cực kỳ hữu ích vừa hoàn toàn lộn xộn
Có lẽ đây là chuyện về một triển khai cụ thể hơn là về pivot table nói chung, nhưng mỗi khi muốn làm việc nâng cao hơn một chút thì thường cảm thấy thiếu hụt
Chẳng hạn, cả Excel lẫn Google Sheets đều rất hạn chế, theo những cách khác nhau, về cách tạo ra “giá trị”
Cách lọc/sắp xếp hoạt động trong pivot table cũng không phải trực quan hay linh hoạt nhất
Rất khó kiểm soát các yếu tố UI như header, style, và sau khi tạo pivot table, tôi thường phải sao chép nó sang nơi khác rồi chỉnh sửa thủ công đủ thứ. Khi đó nó không còn cập nhật động được nữa, làm mục đích ban đầu bị nhạt đi
Tôi không phải chuyên gia bảng tính nên có thể mình đang bỏ sót điều gì đó
Chủ yếu dùng để nhanh chóng tìm các giá trị bất ngờ trong cột dữ liệu nguồn. Tuy nhiên, với sự xuất hiện của các công thức tràn như
=unique(), tôi cũng ngày càng ít dùng nó cho mục đích nàyTôi nghĩ khi mọi người muốn nhiều hơn từ pivot table, thường họ thực ra gần như đang cần Power Query. Tính năng đó đã có, nhưng nhiều người khá sợ nó. Có thể không phải với HN, nhưng đúng với nhóm người dùng phổ thông
Điều này làm tôi khó chịu đến mức tôi quyết định tự viết một engine bảng tính, và đây là một trong những điểm đau tôi muốn sửa
Chỉ cần nhấp vào header là có thể đổi thứ tự hàng/cột, và có thể áp dụng bộ lọc bằng cách nhập đơn giản các mục muốn giữ hoặc loại trừ
Pivot table chắc chắn mạnh, nhưng cái tên thì đáng tiếc, và trong Excel lúc nào cũng mất một thời gian mới xử lý UI cho đúng được
Tôi thích tính năng Categories của Numbers trên MacOS vì nó dễ dùng hơn nhiều, nhưng khi chạm tới giới hạn thì có những hạn chế khá bực mình
Dạo này với các tác vụ phức tạp, cách dễ nhất thường là xuất bảng tính ra CSV rồi chạy truy vấn SQL bằng CSVQ