Ngôn ngữ tốt nhất cho tự động hóa Excel

Thông thường, người dùng Excel bắt đầu đặt câu hỏi về các công cụ bảng tính của họ khi họ gặp phải giới hạn. Một ví dụ kinh điển là khi sổ làm việc Excel chứa quá nhiều dữ liệu và công thức khiến chúng trở nên chậm hoặc trong trường hợp xấu nhất là bị sập. Tuy nhiên, thật hợp lý khi đặt câu hỏi về thiết lập của bạn trước khi mọi thứ đi về phía nam. nếu bạn làm việc trên các sổ làm việc quan trọng trong đó các lỗi có thể dẫn đến thiệt hại về tài chính hoặc uy tín hoặc nếu bạn dành hàng giờ mỗi ngày để cập nhật sổ làm việc Excel theo cách thủ công, thì bạn nên tìm hiểu cách tự động hóa các quy trình của mình bằng ngôn ngữ lập trình. Tự động hóa loại bỏ rủi ro do lỗi của con người và cho phép bạn dành thời gian cho các tác vụ hiệu quả hơn thay vì sao chép/dán dữ liệu vào bảng tính Excel

Trong chương này, tôi sẽ cung cấp cho bạn một vài lý do tại sao Python là một lựa chọn tuyệt vời khi kết hợp với Excel và những ưu điểm của nó so với ngôn ngữ tự động hóa tích hợp sẵn của Excel, VBA. Sau khi giới thiệu Excel như một ngôn ngữ lập trình và hiểu các đặc điểm của nó, tôi sẽ chỉ ra các tính năng cụ thể giúp Python mạnh hơn rất nhiều so với VBA. Tuy nhiên, để bắt đầu, chúng ta hãy xem nhanh nguồn gốc của hai nhân vật chính của chúng ta

Về công nghệ máy tính, Excel và Python đều đã có từ rất lâu. Excel được Microsoft ra mắt lần đầu tiên vào năm 1985—và điều này có thể gây ngạc nhiên cho nhiều người—nó chỉ có sẵn cho Apple Macintosh. Mãi đến năm 1987, Microsoft Windows mới có phiên bản đầu tiên dưới dạng Excel 2. 0. Mặc dù vậy, Microsoft không phải là người chơi đầu tiên trong thị trường bảng tính. VisiCorp ra mắt VisiCalc vào năm 1979, tiếp theo là Lotus Software vào năm 1983 với Lotus 1-2-3. Và Microsoft đã không dẫn đầu với Excel. ba năm trước đó, họ đã phát hành Multiplan, một chương trình bảng tính có thể được sử dụng trên MS-DOS và một số hệ điều hành khác, nhưng không phải trên Windows

Python ra đời năm 1991, chỉ sau Excel 6 năm. Mặc dù Excel đã trở nên phổ biến từ rất sớm, nhưng Python đã mất nhiều thời gian hơn một chút cho đến khi nó được áp dụng trong một số lĩnh vực như phát triển web hoặc quản trị hệ thống. Năm 2005, Python bắt đầu trở thành một giải pháp thay thế nghiêm túc cho điện toán khoa học khi NumPy, một gói dành cho điện toán dựa trên mảng và đại số tuyến tính, được phát hành lần đầu tiên. NumPy đã kết hợp hai gói tiền nhiệm và do đó sắp xếp hợp lý tất cả các nỗ lực phát triển xung quanh tính toán khoa học thành một dự án duy nhất. Ngày nay, nó là nền tảng của vô số gói khoa học, bao gồm cả pandas, ra mắt vào năm 2008 và chịu trách nhiệm chính cho việc áp dụng rộng rãi Python trong thế giới khoa học dữ liệu và tài chính bắt đầu xảy ra sau năm 2010. Nhờ gấu trúc, Python, cùng với R, đã trở thành một trong những ngôn ngữ được sử dụng phổ biến nhất cho các nhiệm vụ khoa học dữ liệu như phân tích dữ liệu, thống kê và học máy

Thực tế là cả Python và Excel đều được phát minh từ lâu không phải là điểm chung duy nhất của chúng. Excel và Python cũng là một ngôn ngữ lập trình. Mặc dù bạn có thể không ngạc nhiên khi biết điều đó về Python, nhưng nó có thể yêu cầu giải thích về Excel, tôi sẽ cung cấp cho bạn phần tiếp theo

Phần này bắt đầu bằng cách giới thiệu Excel như một ngôn ngữ lập trình, giúp bạn hiểu tại sao các vấn đề về bảng tính thường xuyên xuất hiện trên tin tức. Sau đó, chúng ta sẽ xem xét một vài phương pháp hay nhất đã xuất hiện trong cộng đồng phát triển phần mềm và có thể giúp bạn tránh khỏi nhiều lỗi Excel điển hình. Chúng tôi sẽ kết thúc bằng phần giới thiệu ngắn gọn về Power Query và Power Pivot, hai công cụ Excel hiện đại bao gồm loại chức năng mà chúng tôi sẽ sử dụng pandas để thay thế

Nếu bạn sử dụng Excel nhiều hơn danh sách tạp hóa của mình, thì chắc chắn bạn đang sử dụng các hàm như

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
6 để tính tổng một dải ô. Nếu bạn suy nghĩ một chút về cách nó hoạt động, bạn sẽ nhận thấy rằng giá trị của một ô thường phụ thuộc vào một hoặc nhiều ô khác, ô này lại có thể sử dụng các hàm phụ thuộc vào một hoặc nhiều ô khác, v.v. Thực hiện các lệnh gọi hàm lồng nhau như vậy không khác gì cách thức hoạt động của các ngôn ngữ lập trình khác, chỉ khác là bạn viết mã trong ô thay vì tệp văn bản. Và nếu điều đó vẫn chưa thuyết phục được bạn. vào cuối năm 2020, Microsoft đã công bố giới thiệu các hàm lambda, cho phép bạn viết các hàm có thể sử dụng lại bằng ngôn ngữ công thức riêng của Excel, i. e. , mà không cần phải dựa vào một ngôn ngữ khác như VBA. Theo Brian Jones, trưởng bộ phận sản phẩm của Excel, đây là mảnh ghép còn thiếu cuối cùng đã biến Excel trở thành một ngôn ngữ lập trình “thực sự”. Điều này cũng có nghĩa là người dùng Excel thực sự nên được gọi là lập trình viên Excel

Tuy nhiên, có một điều đặc biệt về các lập trình viên Excel. hầu hết trong số họ là người dùng doanh nghiệp hoặc chuyên gia tên miền không được đào tạo chính quy về khoa học máy tính. Họ là thương nhân, kế toán hoặc kỹ sư, chỉ cần đề cập đến một vài ví dụ. Các công cụ bảng tính của họ được thiết kế để giải quyết vấn đề kinh doanh và thường bỏ qua các phương pháp hay nhất trong phát triển phần mềm. Do đó, các công cụ bảng tính này thường kết hợp đầu vào, tính toán và đầu ra trên cùng một trang tính, chúng có thể yêu cầu thực hiện các bước không rõ ràng để chúng hoạt động bình thường và các thay đổi quan trọng được thực hiện mà không có bất kỳ mạng lưới an toàn nào. Nói cách khác, các công cụ bảng tính thiếu kiến ​​trúc ứng dụng vững chắc và thường không có giấy tờ và chưa được kiểm tra. Đôi khi, những vấn đề này có thể có hậu quả nghiêm trọng. nếu bạn quên tính toán lại sổ giao dịch của mình trước khi thực hiện giao dịch, bạn có thể mua hoặc bán sai số lượng cổ phiếu, điều này có thể khiến bạn mất tiền. Và nếu bạn đang giao dịch không chỉ bằng tiền của chính mình, thì chúng ta có thể đọc về nó trên tin tức, như chúng ta sẽ thấy tiếp theo

Excel trong Tin tức

Excel là khách mời thường xuyên của tin tức và trong quá trình viết bài này, hai câu chuyện mới đã xuất hiện trên tiêu đề. Đầu tiên là về Ủy ban danh pháp gen HUGO, đã đổi tên một số gen của con người để Excel không thể hiểu chúng là ngày tháng nữa. Ví dụ, để ngăn gen

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
7 biến thành
If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
8, nó được đổi tên thành
If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
0. Trong câu chuyện thứ hai, Excel bị đổ lỗi cho việc chậm trễ báo cáo 16.000 kết quả xét nghiệm COVID-19 ở Anh. Sự cố xảy ra do kết quả kiểm tra được ghi vào định dạng tệp Excel cũ hơn (. xls) được giới hạn trong khoảng 65.000 hàng. Điều này có nghĩa là các bộ dữ liệu lớn hơn chỉ đơn giản là bị cắt vượt quá giới hạn đó. Mặc dù hai câu chuyện này cho thấy tầm quan trọng và sự thống trị liên tục của Excel trong thế giới ngày nay, nhưng có lẽ không có “sự cố Excel” nào khác nổi tiếng hơn Cá voi Luân Đôn

Cá voi Luân Đôn là biệt danh của một nhà giao dịch mắc lỗi giao dịch khiến JP Morgan phải thông báo khoản lỗ đáng kinh ngạc 6 tỷ đô la vào năm 2012. Nguồn gốc của sự bùng nổ là một mô hình rủi ro giá trị dựa trên Excel đã đánh giá thấp đáng kể rủi ro mất tiền thực sự trong một trong các danh mục đầu tư của họ. Báo cáo của JPMorgan Chase & Co. Lực lượng đặc nhiệm quản lý về tổn thất CIO năm 2012 (2013) đề cập rằng “mô hình hoạt động thông qua một loạt bảng tính Excel, phải được hoàn thành thủ công, bằng quy trình sao chép và dán dữ liệu từ bảng tính này sang bảng tính khác. ” Bên cạnh những vấn đề vận hành này, họ đã mắc lỗi logic. trong một phép tính, họ đã chia cho một tổng thay vì trung bình

Nếu bạn muốn xem thêm những câu chuyện này, hãy xem Câu chuyện kinh dị, một trang web được duy trì bởi Nhóm lợi ích rủi ro bảng tính châu Âu (EuSpRIG)

Để ngăn công ty của bạn kết thúc trên bản tin với một câu chuyện tương tự, chúng ta hãy xem xét một số phương pháp hay nhất tiếp theo giúp công việc của bạn với Excel an toàn hơn rất nhiều

Thực tiễn tốt nhất về lập trình

Phần này sẽ giới thiệu cho bạn các phương pháp hay nhất về lập trình quan trọng nhất, bao gồm phân tách các mối quan tâm, nguyên tắc DRY, thử nghiệm và kiểm soát phiên bản. Như chúng ta sẽ thấy, việc theo dõi chúng sẽ dễ dàng hơn khi bạn bắt đầu sử dụng Python cùng với Excel

Tách mối quan tâm

Một trong những nguyên tắc thiết kế quan trọng nhất trong lập trình là tách biệt các mối quan tâm, đôi khi còn được gọi là mô đun hóa. Điều đó có nghĩa là một bộ chức năng có liên quan nên được chăm sóc bởi một phần độc lập của chương trình để có thể dễ dàng thay thế nó mà không ảnh hưởng đến phần còn lại của ứng dụng. Ở mức cao nhất, một ứng dụng thường được chia thành các lớp sau

  • Lớp trình bày

  • lớp kinh doanh

  • Lớp dữ liệu

Để giải thích các lớp này, hãy xem xét một công cụ chuyển đổi tiền tệ đơn giản như công cụ được hiển thị trong. Bạn sẽ tìm thấy currency_converter. xlsx Excel trong thư mục xl của kho lưu trữ đồng hành

Đây là cách ứng dụng hoạt động. lần lượt nhập Số tiền và Đơn vị tiền tệ vào các ô A4 và B4, và Excel sẽ chuyển đổi số tiền này thành đô la Mỹ trong ô D4. Nhiều ứng dụng bảng tính theo thiết kế như vậy và được các doanh nghiệp sử dụng hàng ngày. Hãy để tôi chia nhỏ ứng dụng thành các lớp của nó

Lớp trình bày

Đây là những gì bạn nhìn thấy và tương tác với, tôi. e. , giao diện người dùng. giá trị của các ô A4, B4 và D4 cùng với nhãn của chúng tạo lớp trình bày của bộ chuyển đổi tiền tệ

lớp kinh doanh

Lớp này xử lý logic dành riêng cho ứng dụng. ô D4 xác định cách số tiền được chuyển đổi thành USD. Công thức

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
1 chuyển thành Số tiền nhân với Tỷ giá hối đoái

Lớp dữ liệu

Như tên cho thấy, lớp này đảm nhiệm việc truy cập dữ liệu. phần

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
2 của ô D4 đang thực hiện công việc này

Lớp dữ liệu truy cập dữ liệu từ bảng tỷ giá hối đoái bắt đầu trong ô F3 và đóng vai trò là cơ sở dữ liệu của ứng dụng nhỏ này. Nếu để ý kỹ, bạn có thể nhận thấy rằng ô D4 xuất hiện ở cả 3 lớp. ứng dụng đơn giản này kết hợp các lớp trình bày, kinh doanh và dữ liệu trong một ô duy nhất

Ngôn ngữ tốt nhất cho tự động hóa Excel
Hình 1-1. Chuyển đổi tiền tệ. xlsx

Đây không nhất thiết là một vấn đề đối với công cụ chuyển đổi tiền tệ đơn giản này, nhưng thông thường, những gì bắt đầu khi một tệp Excel nhỏ sẽ sớm biến thành một ứng dụng lớn hơn nhiều. Làm thế nào tình trạng này có thể được cải thiện? . Thông thường, điều này được kết hợp với việc xác định một mã màu nhất định cho mỗi lớp, e. g. , nền xanh lam cho tất cả các ô nhập liệu. Trong , chúng tôi sẽ xây dựng một ứng dụng thực tế dựa trên các lớp này. Excel sẽ là lớp trình bày, trong khi lớp doanh nghiệp và dữ liệu được chuyển sang Python, nơi việc cấu trúc mã của bạn đúng cách sẽ dễ dàng hơn nhiều

Bây giờ bạn đã biết tách biệt các mối quan tâm có nghĩa là gì, hãy cùng tìm hiểu nguyên tắc DRY là gì

nguyên tắc KHÔ

The Pragmatic Programmer của Hunt và Thomas (Pearson Education) đã phổ biến nguyên tắc DRY. đừng lặp lại chính mình. Không có mã trùng lặp có nghĩa là ít dòng mã hơn và ít lỗi hơn, giúp mã dễ bảo trì hơn. Nếu logic nghiệp vụ của bạn nằm trong các công thức ô của bạn, thì thực tế là không thể áp dụng nguyên tắc DRY, vì không có cơ chế nào cho phép bạn sử dụng lại nó trong một sổ làm việc khác. Thật không may, điều này có nghĩa là một cách phổ biến để bắt đầu một dự án Excel mới là sao chép sổ làm việc từ dự án trước đó hoặc từ một mẫu

Nếu bạn viết VBA, đoạn mã có thể tái sử dụng phổ biến nhất là một hàm. Ví dụ: một chức năng cho phép bạn truy cập vào cùng một khối mã từ nhiều macro. Nếu bạn có nhiều chức năng mà bạn luôn sử dụng, bạn có thể muốn chia sẻ chúng giữa các sổ làm việc. Công cụ tiêu chuẩn để chia sẻ mã VBA giữa các sổ làm việc là phần bổ trợ, nhưng phần bổ trợ VBA thiếu cách thức mạnh mẽ để phân phối và cập nhật chúng. Mặc dù Microsoft đã giới thiệu một cửa hàng bổ trợ nội bộ của Excel để giải quyết vấn đề đó, nhưng điều này chỉ hoạt động với các bổ trợ dựa trên JavaScript, vì vậy đây không phải là một tùy chọn cho các lập trình viên VBA. Điều này có nghĩa là việc sử dụng phương pháp sao chép/dán với VBA vẫn còn rất phổ biến. giả sử rằng bạn cần một hàm spline khối trong Excel. Hàm spline bậc ba là một cách để nội suy một đường cong dựa trên một vài điểm đã cho trong một hệ tọa độ và thường được các nhà giao dịch có thu nhập cố định sử dụng để tạo ra một đường cong lãi suất cho tất cả các kỳ hạn dựa trên một số kết hợp kỳ hạn/lãi suất đã biết. Nếu bạn tìm kiếm “Cubic Spline Excel” trên internet, sẽ không mất nhiều thời gian cho đến khi bạn có một trang mã VBA thực hiện những gì bạn muốn. Vấn đề với điều này là thông thường nhất, các chức năng này được viết bởi một người có thể có mục đích tốt nhưng không có tài liệu hoặc thử nghiệm chính thức. Có thể chúng hoạt động với phần lớn đầu vào, nhưng còn một số trường hợp cạnh không phổ biến thì sao? . Ít nhất, đó là những gì bạn sẽ nghe được từ kiểm toán viên nội bộ của mình khi họ tìm ra nguồn gốc của mã

Python giúp dễ dàng phân phối mã bằng cách sử dụng trình quản lý gói, như chúng ta sẽ thấy trong phần cuối của chương này. Tuy nhiên, trước khi chúng ta đến đó, hãy tiếp tục với thử nghiệm, một trong những nền tảng của sự phát triển phần mềm vững chắc

thử nghiệm

Khi bạn yêu cầu một nhà phát triển Excel kiểm tra sổ làm việc của họ, rất có thể họ sẽ thực hiện một số kiểm tra ngẫu nhiên. nhấp vào một nút và xem liệu macro có còn thực hiện những gì nó phải làm hay thay đổi một vài đầu vào và kiểm tra xem đầu ra có hợp lý không. Tuy nhiên, đây là một chiến lược mạo hiểm. Excel giúp dễ dàng đưa ra các lỗi khó phát hiện. Ví dụ: bạn có thể ghi đè lên một công thức bằng giá trị được mã hóa cứng. Hoặc bạn quên điều chỉnh công thức trong một cột ẩn

Khi bạn yêu cầu một nhà phát triển phần mềm chuyên nghiệp kiểm tra mã của họ, họ sẽ viết các bài kiểm tra đơn vị. Như tên gợi ý, đó là một cơ chế để kiểm tra các thành phần riêng lẻ trong chương trình của bạn. Ví dụ: kiểm tra đơn vị đảm bảo rằng một chức năng duy nhất của chương trình hoạt động bình thường. Hầu hết các ngôn ngữ lập trình đều cung cấp cách chạy thử nghiệm đơn vị tự động. Chạy thử nghiệm tự động sẽ tăng đáng kể độ tin cậy của cơ sở mã của bạn và đảm bảo hợp lý rằng bạn sẽ không phá vỡ bất kỳ thứ gì hiện đang hoạt động khi bạn chỉnh sửa mã của mình

Nếu bạn xem công cụ chuyển đổi tiền tệ trong , bạn có thể viết một bài kiểm tra để kiểm tra xem công thức trong ô D4 có trả về đúng 105 USD hay không với các thông tin nhập sau. 100 EUR dưới dạng số tiền và 1. 05 là tỷ giá hối đoái EURUSD. Tại sao điều này giúp? . thay vì nhân số tiền với tỷ giá hối đoái, bạn chia cho nó—xét cho cùng, làm việc với tiền tệ có thể gây nhầm lẫn. Khi bạn chạy thử nghiệm trên, bạn sẽ nhận được lỗi thử nghiệm là 100 EUR / 1. 05 sẽ không dẫn đến 105 USD nữa như kỳ vọng của bài kiểm tra. Như vậy, bạn có thể phát hiện và sửa công thức trước khi bàn giao bảng tính cho người dùng của mình

Gần như tất cả các ngôn ngữ lập trình truyền thống đều cung cấp một hoặc nhiều khung kiểm tra để viết các bài kiểm tra đơn vị mà không cần nỗ lực nhiều—nhưng Excel thì không. May mắn thay, khái niệm về kiểm tra đơn vị đủ đơn giản và bằng cách kết nối Excel với Python, bạn sẽ có quyền truy cập vào các khung kiểm tra đơn vị mạnh mẽ của Python. Mặc dù trình bày sâu hơn về các bài kiểm tra đơn vị nằm ngoài phạm vi của cuốn sách này, nhưng tôi mời bạn xem qua bài đăng trên blog của tôi, trong đó tôi hướng dẫn bạn qua chủ đề với các ví dụ thực tế

Các bài kiểm tra đơn vị thường được thiết lập để chạy tự động khi bạn cam kết mã của mình với hệ thống kiểm soát phiên bản của mình. Phần tiếp theo giải thích hệ thống kiểm soát phiên bản là gì và tại sao chúng khó sử dụng với các tệp Excel

Kiểm soát phiên bản

Một đặc điểm khác của các lập trình viên chuyên nghiệp là họ sử dụng một hệ thống để kiểm soát phiên bản hoặc kiểm soát nguồn. Hệ thống kiểm soát phiên bản (VCS) theo dõi các thay đổi trong mã nguồn của bạn theo thời gian, cho phép bạn xem ai đã thay đổi cái gì, khi nào và tại sao, đồng thời cho phép bạn hoàn nguyên về các phiên bản cũ vào bất kỳ thời điểm nào. Hệ thống kiểm soát phiên bản phổ biến nhất hiện nay là Git. Ban đầu nó được tạo ra để quản lý mã nguồn Linux và kể từ đó đã chinh phục thế giới lập trình—thậm chí Microsoft đã sử dụng Git vào năm 2017 để quản lý mã nguồn Windows. Ngược lại, trong thế giới Excel, hệ thống kiểm soát phiên bản phổ biến nhất cho đến nay có dạng một thư mục nơi các tệp được lưu trữ như thế này

currency_converter_v1.xlsx
currency_converter_v2_2020_04_21.xlsx
currency_converter_final_edits_Bob.xlsx
currency_converter_final_final.xlsx

Nếu, không giống như trong mẫu này, nhà phát triển Excel tuân theo một quy ước nhất định trong tên tệp, thì không có gì sai với điều đó. Nhưng việc lưu giữ lịch sử phiên bản của các tệp cục bộ sẽ khóa bạn khỏi các khía cạnh quan trọng của kiểm soát nguồn dưới dạng cộng tác dễ dàng hơn, đánh giá ngang hàng, quy trình đăng xuất và nhật ký kiểm tra. Và nếu bạn muốn làm cho sổ làm việc của mình an toàn và ổn định hơn, bạn không muốn bỏ lỡ những điều này. Thông thường nhất, các lập trình viên chuyên nghiệp sử dụng Git cùng với nền tảng dựa trên web như GitHub, GitLab, Bitbucket hoặc Azure DevOps. Các nền tảng này cho phép bạn làm việc với cái gọi là yêu cầu kéo hoặc yêu cầu hợp nhất. Chúng cho phép các nhà phát triển chính thức yêu cầu các thay đổi của họ được hợp nhất vào cơ sở mã chính. Yêu cầu kéo cung cấp các thông tin sau

  • Ai là tác giả của những thay đổi

  • Khi nào những thay đổi được thực hiện

  • Mục đích của những thay đổi như được mô tả trong thông báo cam kết là gì

  • các chi tiết của những thay đổi như được hiển thị bởi chế độ xem khác là gì, tôi. e. , chế độ xem làm nổi bật các thay đổi bằng màu xanh lá cây đối với mã mới và màu đỏ đối với mã đã xóa

Điều này cho phép đồng nghiệp hoặc trưởng nhóm xem xét các thay đổi và phát hiện những điểm bất thường. Thông thường, một cặp mắt bổ sung sẽ có thể phát hiện ra một hoặc hai trục trặc hoặc đưa ra phản hồi có giá trị cho lập trình viên. Với tất cả những ưu điểm này, tại sao các nhà phát triển Excel lại thích sử dụng hệ thống tệp cục bộ và quy ước đặt tên của riêng họ thay vì một hệ thống chuyên nghiệp như Git?

  • Nhiều người dùng Excel chỉ đơn giản là không biết về Git hoặc bỏ cuộc từ rất sớm vì Git có đường cong học tập tương đối dốc

  • Git cho phép nhiều người dùng làm việc song song trên các bản sao cục bộ của cùng một tệp. Sau khi tất cả họ hoàn thành công việc của mình, Git thường có thể hợp nhất tất cả các thay đổi lại với nhau mà không cần bất kỳ sự can thiệp thủ công nào. Điều này không hoạt động đối với các tệp Excel. nếu chúng được thay đổi song song trên các bản sao riêng biệt, Git không biết cách hợp nhất những thay đổi này lại thành một tệp

  • Ngay cả khi bạn quản lý để giải quyết các vấn đề trước đó, Git đơn giản là không mang lại nhiều giá trị với các tệp Excel như với các tệp văn bản. Git không thể hiển thị các thay đổi giữa các tệp Excel, cản trở quy trình đánh giá ngang hàng thích hợp

Vì tất cả những vấn đề này, công ty của tôi đã đưa ra xltrail, một hệ thống kiểm soát phiên bản dựa trên Git biết cách xử lý các tệp Excel. Nó ẩn đi sự phức tạp của Git để người dùng doanh nghiệp cảm thấy thoải mái khi sử dụng nó và cũng cho phép bạn kết nối với các hệ thống Git bên ngoài, chẳng hạn như trong trường hợp bạn đã theo dõi các tệp của mình bằng GitHub. xltrail theo dõi các thành phần khác nhau của sổ làm việc, bao gồm công thức ô, phạm vi được đặt tên, Truy vấn nguồn và mã VBA, cho phép bạn tận dụng các lợi ích cổ điển của kiểm soát phiên bản bao gồm đánh giá ngang hàng

Một tùy chọn khác giúp kiểm soát phiên bản dễ dàng hơn với Excel là chuyển logic nghiệp vụ của bạn từ Excel sang tệp Python, điều mà chúng tôi sẽ thực hiện trong. Vì các tệp Python rất dễ theo dõi bằng Git, nên bạn sẽ kiểm soát được phần quan trọng nhất của công cụ bảng tính của mình

Mặc dù phần này được gọi là Các phương pháp hay nhất về lập trình, nhưng nó chủ yếu chỉ ra lý do tại sao chúng khó tuân theo Excel hơn so với ngôn ngữ lập trình truyền thống như Python. Trước khi chúng ta chú ý đến Python, tôi muốn giới thiệu ngắn gọn về Power Query và Power Pivot, nỗ lực hiện đại hóa Excel của Microsoft

Excel hiện đại

Kỷ nguyên hiện đại của Excel bắt đầu với Excel 2007 khi menu ribbon và các định dạng tệp mới (e. g. , xlsx thay vì xls) đã được giới thiệu. Tuy nhiên, cộng đồng Excel sử dụng Excel hiện đại để tham khảo các công cụ được thêm vào Excel 2010. quan trọng nhất là Power Query và Power Pivot. Chúng cho phép bạn kết nối với các nguồn dữ liệu bên ngoài và phân tích dữ liệu quá lớn để vừa với bảng tính. Vì chức năng của chúng chồng chéo với những gì chúng ta sẽ làm với gấu trúc trong , nên tôi sẽ giới thiệu ngắn gọn về chúng trong phần đầu tiên của phần này. Phần thứ hai là về Power BI, có thể được mô tả như một ứng dụng nghiệp vụ thông minh độc lập kết hợp chức năng của Power Query và Power Pivot với các khả năng trực quan hóa—và ứng dụng này có hỗ trợ tích hợp sẵn cho Python

Power Query và Power Pivot

Với Excel 2010, Microsoft đã giới thiệu một bổ trợ có tên là Power Query. Power Query kết nối với vô số nguồn dữ liệu bao gồm sổ làm việc Excel, tệp CSV và cơ sở dữ liệu SQL. Nó cũng cung cấp các kết nối với các nền tảng như Salesforce và thậm chí có thể được mở rộng để kết nối với các hệ thống không có sẵn. Chức năng cốt lõi của Power Query là xử lý các bộ dữ liệu quá lớn để vừa với một bảng tính. Sau khi tải dữ liệu, bạn có thể thực hiện các bước bổ sung để làm sạch và thao tác với dữ liệu để dữ liệu ở dạng có thể sử dụng được trong Excel. Ví dụ: bạn có thể tách một cột thành hai, hợp nhất hai bảng hoặc lọc và nhóm dữ liệu của mình. Kể từ Excel 2016, Power Query không còn là một phần bổ trợ nữa nhưng có thể được truy cập trực tiếp trên tab ruy-băng Dữ liệu qua nút Lấy dữ liệu. Power Query chỉ khả dụng một phần trên macOS—tuy nhiên, nó đang được phát triển tích cực, do đó, nó sẽ được hỗ trợ đầy đủ trong bản phát hành Excel trong tương lai

Power Pivot song hành với Power Query. về mặt khái niệm, đây là bước thứ hai sau khi thu thập và làm sạch dữ liệu của bạn bằng Power Query. Power Pivot giúp bạn phân tích và trình bày dữ liệu của mình một cách hấp dẫn trực tiếp trong Excel. Hãy nghĩ về nó như một bảng tổng hợp truyền thống, giống như Power Query, có thể xử lý các tập dữ liệu lớn. Power Pivot cho phép bạn xác định các mô hình dữ liệu chính thức với các mối quan hệ và cấu trúc phân cấp, đồng thời, bạn có thể thêm các cột được tính toán thông qua ngôn ngữ công thức DAX. Power Pivot cũng được giới thiệu với Excel 2010 nhưng vẫn là một phần bổ trợ và cho đến nay vẫn chưa khả dụng trên macOS

Nếu bạn thích làm việc với Power Query và Power Pivot và muốn xây dựng bảng điều khiển trên chúng, thì Power BI có thể đáng xem—hãy xem tại sao

điện BI

Power BI là một ứng dụng độc lập được phát hành vào năm 2015. Đó là câu trả lời của Microsoft cho các công cụ kinh doanh thông minh như Tableau hoặc Qlik. Power BI Desktop miễn phí, vì vậy nếu bạn muốn sử dụng nó, hãy truy cập trang chủ Power BI và tải xuống—tuy nhiên, xin lưu ý rằng Power BI Desktop chỉ khả dụng cho Windows. Power BI muốn hiểu ý nghĩa của các tập dữ liệu lớn bằng cách trực quan hóa chúng trong bảng điều khiển tương tác. Về cốt lõi, nó dựa trên chức năng Power Query và Power Pivot giống như Excel. Các gói thương mại cho phép bạn cộng tác và chia sẻ trang tổng quan trực tuyến, nhưng những trang tổng quan này tách biệt với phiên bản dành cho máy tính để bàn. Lý do chính khiến Power BI trở nên thú vị trong bối cảnh của cuốn sách này là nó đã hỗ trợ các tập lệnh Python từ năm 2018. Python có thể được sử dụng cho phần truy vấn cũng như phần trực quan hóa bằng cách sử dụng các thư viện vẽ đồ thị của Python. Đối với tôi, việc sử dụng Python trong Power BI cảm thấy hơi rắc rối, nhưng phần quan trọng ở đây là Microsoft đã nhận ra tầm quan trọng của Python đối với phân tích dữ liệu. Theo đó, rất nhiều hy vọng rằng một ngày nào đó Python cũng sẽ tìm được đường chính thức vào Excel.

Vậy điều gì tuyệt vời ở Python khiến nó trở thành Power BI của Microsoft?

Excel là tất cả về lưu trữ, phân tích và trực quan hóa dữ liệu. Và vì Python đặc biệt mạnh trong lĩnh vực điện toán khoa học nên nó rất phù hợp khi kết hợp với Excel. Python cũng là một trong số rất ít ngôn ngữ hấp dẫn cả lập trình viên chuyên nghiệp cũng như người dùng mới bắt đầu viết một vài dòng mã vài tuần một lần. Một mặt, các lập trình viên chuyên nghiệp thích làm việc với Python vì đây là ngôn ngữ lập trình có mục đích chung và do đó cho phép bạn đạt được khá nhiều thứ mà không cần nhảy qua các vòng. Mặt khác, những người mới bắt đầu thích Python vì nó dễ học hơn các ngôn ngữ khác. Do đó, Python được sử dụng cho cả phân tích dữ liệu đặc biệt và các tác vụ tự động hóa nhỏ hơn cũng như trong các cơ sở mã sản xuất khổng lồ như phần phụ trợ của Instagram. Điều này cũng có nghĩa là khi công cụ Excel do Python hỗ trợ của bạn trở nên thực sự phổ biến, thật dễ dàng để thêm một nhà phát triển web vào dự án, người sẽ biến nguyên mẫu Excel-Python của bạn thành một ứng dụng web chính thức. Ưu điểm duy nhất của Python là phần có logic nghiệp vụ rất có thể không cần phải viết lại mà có thể được di chuyển nguyên trạng từ nguyên mẫu Excel sang môi trường web sản xuất

Trong phần này, tôi sẽ giới thiệu các khái niệm cốt lõi của Python và so sánh chúng với Excel và VBA. Tôi sẽ đề cập đến khả năng đọc mã, trình quản lý gói và thư viện tiêu chuẩn của Python, ngăn xếp máy tính khoa học, các tính năng ngôn ngữ hiện đại và khả năng tương thích đa nền tảng. Trước tiên hãy đi sâu vào khả năng đọc

Khả năng đọc và khả năng bảo trì

Nếu mã của bạn có thể đọc được, điều đó có nghĩa là nó dễ theo dõi và dễ hiểu—đặc biệt đối với những người bên ngoài chưa tự viết mã. Điều này giúp dễ dàng phát hiện lỗi và duy trì mã trong tương lai. Đó là lý do tại sao một dòng trong The Zen of Python là “số lượng khả năng đọc. ” The Zen of Python là một bản tóm tắt ngắn gọn về các nguyên tắc thiết kế cốt lõi của Python và chúng ta sẽ tìm hiểu cách in nó trong chương tiếp theo. Hãy cùng xem đoạn mã sau trong VBA

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If

Trong VBA, bạn có thể định dạng lại đoạn mã sau, điều này hoàn toàn tương đương

If i < 5 Then
    Debug.Print "i is smaller than 5"
    ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
    Else
    Debug.Print "i is bigger than 10"
End If

Trong phiên bản đầu tiên, thụt đầu dòng trực quan phù hợp với logic của mã. Điều này giúp bạn dễ đọc và hiểu mã, điều này lại giúp bạn dễ dàng phát hiện lỗi hơn. Trong phiên bản thứ hai, một nhà phát triển mới làm quen với mã có thể không nhìn thấy điều kiện

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
3 và
If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
4 khi lướt qua nó lần đầu tiên—điều này rõ ràng thậm chí còn đúng hơn nếu mã là một phần của cơ sở mã lớn hơn

Python không chấp nhận mã được định dạng như ví dụ thứ hai. nó buộc bạn phải căn chỉnh thụt đầu dòng trực quan với logic của mã, ngăn ngừa các vấn đề về khả năng đọc. Python có thể làm điều này bởi vì nó dựa vào thụt đầu dòng để xác định các khối mã khi bạn sử dụng chúng trong các câu lệnh

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
5 hoặc vòng lặp
If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
6. Thay vì thụt đầu dòng, phần lớn các ngôn ngữ khác sử dụng dấu ngoặc nhọn và VBA sử dụng các từ khóa như
If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
7, như chúng ta vừa thấy trong đoạn mã. Lý do đằng sau việc sử dụng thụt đầu dòng cho các khối mã là trong lập trình, phần lớn thời gian dành cho việc duy trì mã hơn là viết nó ngay từ đầu. Có mã có thể đọc được giúp các lập trình viên mới (hoặc chính bạn vài tháng sau khi viết mã) quay lại và hiểu điều gì đang xảy ra

Chúng ta sẽ tìm hiểu tất cả về các quy tắc thụt lề của Python trong phần , nhưng bây giờ hãy tiếp tục với thư viện chuẩn. chức năng đi kèm với Python ngoài hộp

Thư viện tiêu chuẩn và Trình quản lý gói

Python đi kèm với một bộ chức năng tích hợp phong phú được cung cấp bởi thư viện tiêu chuẩn của nó. Cộng đồng Python thích đề cập đến nó bằng cách nói rằng Python đi kèm với “pin đi kèm. ” Cho dù bạn cần giải nén tệp ZIP, đọc các giá trị của tệp CSV hay muốn tìm nạp dữ liệu từ internet, thư viện chuẩn của Python đều đáp ứng cho bạn và bạn có thể đạt được tất cả những điều này thường chỉ bằng một vài dòng mã. Chức năng tương tự trong VBA sẽ yêu cầu bạn viết một lượng mã đáng kể hoặc cài đặt một phần bổ trợ. Và thông thường, các giải pháp bạn tìm thấy trên internet chỉ hoạt động trên Windows chứ không phải macOS

Mặc dù thư viện chuẩn của Python bao gồm một số lượng chức năng ấn tượng, nhưng vẫn có những tác vụ khó lập trình hoặc chậm khi bạn chỉ dựa vào thư viện chuẩn. Đây là nơi PyPI xuất hiện. PyPI là viết tắt của Python Package Index và là một kho lưu trữ khổng lồ nơi mọi người (bao gồm cả bạn. ) có thể tải lên các gói Python nguồn mở bổ sung chức năng bổ sung cho Python

PyPI được phát âm là “mắt hạt đậu. ” Điều này là để phân biệt PyPI với PyPy được phát âm là “pie pie” và là một triển khai thay thế nhanh chóng của Python

Ví dụ: để dễ dàng tìm nạp dữ liệu từ các nguồn trên internet, bạn có thể cài đặt gói Yêu cầu để có quyền truy cập vào một tập hợp các lệnh mạnh nhưng dễ sử dụng. Để cài đặt nó, bạn sẽ sử dụng pip trình quản lý gói của Python mà bạn chạy trên Dấu nhắc lệnh hoặc Terminal. pip là từ viết tắt đệ quy của các gói cài đặt pip. Đừng lo lắng nếu điều này nghe có vẻ hơi trừu tượng ngay bây giờ; . Hiện tại, điều quan trọng hơn là phải hiểu tại sao trình quản lý gói lại quan trọng đến vậy. Một trong những lý do chính là bất kỳ gói hợp lý nào sẽ không chỉ phụ thuộc vào thư viện chuẩn của Python mà còn phụ thuộc vào các gói nguồn mở khác cũng được lưu trữ trên PyPI. Những phụ thuộc này có thể một lần nữa phụ thuộc vào phụ thuộc, v.v. pip kiểm tra đệ quy các phụ thuộc và phụ thuộc của một gói và tải xuống và cài đặt chúng. pip cũng giúp dễ dàng cập nhật các gói của bạn để bạn có thể cập nhật các phụ thuộc của mình. Điều này giúp việc tuân thủ nguyên tắc DRY trở nên dễ dàng hơn nhiều vì bạn không cần phải phát minh lại hoặc sao chép/dán những gì đã có sẵn trên PyPI. Với pip và PyPI, bạn cũng có một cơ chế chắc chắn để phân phối và cài đặt các phần phụ thuộc này, điều mà Excel đang thiếu với các phần bổ trợ truyền thống của nó

Với pip, bạn có thể cài đặt các gói cho hầu hết mọi thứ, nhưng đối với người dùng Excel, một số gói thú vị nhất chắc chắn là các gói dành cho máy tính khoa học. Hãy tìm hiểu thêm một chút về điện toán khoa học với Python trong phần tiếp theo

Máy tính khoa học

Một lý do quan trọng cho sự thành công của Python là nó được tạo ra như một ngôn ngữ lập trình đa năng. Các khả năng cho tính toán khoa học đã được thêm vào sau này dưới dạng các gói của bên thứ ba. Điều này có lợi thế duy nhất là nhà khoa học dữ liệu có thể sử dụng cùng một ngôn ngữ cho các thử nghiệm và nghiên cứu với tư cách là nhà phát triển web, người cuối cùng có thể xây dựng ứng dụng sẵn sàng sản xuất xung quanh lõi tính toán. Khả năng xây dựng các ứng dụng khoa học từ một ngôn ngữ giúp giảm ma sát, thời gian thực hiện và chi phí. Các gói khoa học như NumPy, SciPy và pandas cung cấp cho chúng tôi quyền truy cập vào một cách rất ngắn gọn để xây dựng các vấn đề toán học. Ví dụ: chúng ta hãy xem một trong những công thức tài chính nổi tiếng hơn được sử dụng để tính phương sai của danh mục đầu tư theo Lý thuyết danh mục đầu tư hiện đại

Phương sai của danh mục đầu tư được ký hiệu là σ2, trong khi w là vectơ trọng số của từng tài sản và C là ma trận hiệp phương sai của danh mục đầu tư. Nếu

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
8 và
If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
9 là phạm vi Excel, bạn có thể tính phương sai danh mục đầu tư trong VBA như vậy

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
3

So sánh điều này với ký hiệu gần như toán học trong Python, giả sử rằng

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
8 và
If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
9 là các mảng DataFrames hoặc NumPy của gấu trúc (tôi sẽ chính thức giới thiệu chúng trong phần )

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
6

Nhưng nó không chỉ là về tính thẩm mỹ và khả năng đọc. NumPy và pandas sử dụng mã Fortran và C được biên dịch dưới mui xe, giúp bạn tăng hiệu suất khi làm việc với ma trận lớn so với VBA

Thiếu hỗ trợ cho tính toán khoa học là một hạn chế rõ ràng trong VBA. Nhưng ngay cả khi bạn nhìn vào các tính năng cốt lõi của ngôn ngữ, VBA vẫn bị tụt lại phía sau, như tôi sẽ chỉ ra trong phần tiếp theo

Tính năng ngôn ngữ hiện đại

Kể từ Excel 97, ngôn ngữ VBA không có bất kỳ thay đổi lớn nào về tính năng ngôn ngữ. Tuy nhiên, điều đó không có nghĩa là VBA không còn được hỗ trợ nữa. Microsoft đang cung cấp các bản cập nhật với mỗi bản phát hành Excel mới để có thể tự động hóa các tính năng Excel mới được giới thiệu cùng với bản phát hành đó. Ví dụ: Excel 2016 đã thêm hỗ trợ để tự động hóa Power Query. Một ngôn ngữ đã ngừng phát triển hơn 20 năm trước đang bỏ lỡ các khái niệm ngôn ngữ hiện đại đã được giới thiệu trong tất cả các ngôn ngữ lập trình chính trong những năm qua. Ví dụ, xử lý lỗi trong VBA thực sự cho thấy tuổi của nó. Nếu bạn muốn xử lý lỗi một cách duyên dáng trong VBA, nó sẽ giống như thế này

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
7

Xin lưu ý rằng bạn có thể sẽ không tính toán nghịch đảo như thế này—tôi chỉ sử dụng nó ở đây làm ví dụ để giúp bạn dễ dàng theo dõi luồng mã hơn. Xử lý lỗi VBA liên quan đến việc sử dụng các nhãn như

If i < 5 Then
    Debug.Print "i is smaller than 5"
    ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
    Else
    Debug.Print "i is bigger than 10"
End If
2 và
If i < 5 Then
    Debug.Print "i is smaller than 5"
    ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
    Else
    Debug.Print "i is bigger than 10"
End If
3 trong ví dụ. Bạn hướng dẫn mã chuyển đến các nhãn này thông qua câu lệnh
If i < 5 Then
    Debug.Print "i is smaller than 5"
    ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
    Else
    Debug.Print "i is bigger than 10"
End If
4 hoặc
If i < 5 Then
    Debug.Print "i is smaller than 5"
    ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
    Else
    Debug.Print "i is bigger than 10"
End If
5. Ngay từ đầu, các nhãn đã được công nhận chịu trách nhiệm cho cái mà nhiều lập trình viên gọi là mã spaghetti. một cách hay để nói rằng dòng mã khó theo dõi và do đó khó bảo trì. Đó là lý do tại sao gần như tất cả các ngôn ngữ được phát triển tích cực đã giới thiệu cơ chế
If i < 5 Then
    Debug.Print "i is smaller than 5"
    ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
    Else
    Debug.Print "i is bigger than 10"
End If
6—trong Python được gọi là
If i < 5 Then
    Debug.Print "i is smaller than 5"
    ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
    Else
    Debug.Print "i is bigger than 10"
End If
7—mà tôi sẽ giới thiệu trong. Nếu bạn là một nhà phát triển VBA thành thạo, bạn cũng có thể thích thú với việc Python hỗ trợ kế thừa lớp, một tính năng của lập trình hướng đối tượng không có trong VBA

Bên cạnh các tính năng của ngôn ngữ hiện đại, còn có một yêu cầu khác đối với ngôn ngữ lập trình hiện đại. khả năng tương thích đa nền tảng. Hãy xem tại sao điều này lại quan trọng

Khả năng tương thích đa nền tảng

Ngay cả khi bạn phát triển mã của mình trên máy tính cục bộ chạy trên Windows hoặc macOS, thì rất có thể bạn muốn chạy chương trình của mình trên máy chủ hoặc trên đám mây vào một thời điểm nào đó. Máy chủ cho phép mã của bạn được thực thi theo lịch trình và giúp ứng dụng của bạn có thể truy cập được từ mọi nơi bạn muốn, với sức mạnh tính toán mà bạn cần. Trên thực tế, tôi sẽ chỉ cho bạn cách chạy mã Python trên máy chủ trong chương tiếp theo bằng cách giới thiệu cho bạn sổ ghi chép Jupyter được lưu trữ. Phần lớn các máy chủ chạy trên Linux, vì đây là một hệ điều hành ổn định, an toàn và tiết kiệm chi phí. Và vì các chương trình Python chạy không thay đổi trên tất cả các hệ điều hành chính, nên điều này sẽ giúp bạn giảm bớt khó khăn khi chuyển từ máy cục bộ sang thiết lập sản xuất

Ngược lại, mặc dù Excel VBA chạy trên Windows và macOS, nhưng vẫn dễ dàng giới thiệu chức năng chỉ chạy trên Windows. Trong tài liệu chính thức của VBA hoặc trên các diễn đàn, bạn sẽ thường thấy mã như thế này

If i < 5 Then
    Debug.Print "i is smaller than 5"
ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
Else
    Debug.Print "i is bigger than 10"
End If
4

Bất cứ khi nào bạn có một cuộc gọi

If i < 5 Then
    Debug.Print "i is smaller than 5"
    ElseIf i <= 10 Then
    Debug.Print "i is between 5 and 10"
    Else
    Debug.Print "i is bigger than 10"
End If
8 hoặc được yêu cầu đi tới Công cụ > Tài liệu tham khảo trong trình soạn thảo VBA để thêm một tài liệu tham khảo, hầu như bạn luôn xử lý mã sẽ chỉ chạy trên Windows. Một khu vực nổi bật khác mà bạn cần chú ý nếu muốn các tệp Excel của mình hoạt động trên Windows và macOS là các điều khiển ActiveX. Điều khiển ActiveX là các phần tử như nút và danh sách thả xuống mà bạn có thể đặt trên trang tính của mình nhưng chúng chỉ hoạt động trên Windows. Đảm bảo tránh chúng nếu bạn cũng muốn sổ làm việc của mình chạy trên macOS

Trong chương này, chúng ta đã gặp Python và Excel, hai công nghệ rất phổ biến đã tồn tại trong nhiều thập kỷ—một khoảng thời gian dài so với nhiều công nghệ khác mà chúng ta sử dụng ngày nay. Cá voi Luân Đôn là một ví dụ về mức độ sai sót có thể xảy ra (tính theo đồng đô la) khi bạn không sử dụng Excel đúng cách với các sổ làm việc quan trọng. Đây là động lực của chúng tôi để xem xét một tập hợp tối thiểu các phương pháp hay nhất về lập trình. áp dụng phân tách mối quan tâm, tuân theo nguyên tắc DRY và sử dụng kiểm tra tự động và kiểm soát phiên bản. Sau đó, chúng tôi đã xem xét Power Query và Power Pivot, cách tiếp cận của Microsoft trong việc xử lý dữ liệu lớn hơn bảng tính của bạn. Tuy nhiên, tôi cảm thấy rằng chúng thường không phải là giải pháp phù hợp vì chúng khóa bạn vào thế giới của Microsoft và ngăn bạn tận dụng tính linh hoạt và sức mạnh của các giải pháp dựa trên đám mây hiện đại

Python đi kèm với các tính năng thuyết phục còn thiếu trong Excel. thư viện tiêu chuẩn, trình quản lý gói, thư viện cho máy tính khoa học và khả năng tương thích đa nền tảng. Bằng cách học cách kết hợp Excel với Python, bạn có thể tận dụng tốt nhất cả hai thế giới và sẽ tiết kiệm thời gian thông qua tự động hóa, mắc ít lỗi hơn vì dễ dàng tuân theo các phương pháp hay nhất về lập trình và bạn sẽ có thể sử dụng ứng dụng của mình và mở rộng ứng dụng ra bên ngoài

Bây giờ bạn đã biết tại sao Python lại là người bạn đồng hành đắc lực của Excel, đã đến lúc thiết lập môi trường phát triển của bạn để có thể viết những dòng mã Python đầu tiên của bạn

Bạn có thể đọc thông báo về các hàm lambda trên Blog Excel

James Vincent, “Các nhà khoa học đổi tên gen người để ngăn Microsoft Excel đọc sai thành ngày tháng,” The Verge, ngày 6 tháng 8 năm 2020, https. //oriel. ly/0qo-n

Leo Kelion, “Excel. Tại sao việc sử dụng công cụ của Microsoft lại khiến kết quả COVID-19 bị mất,” BBC News, ngày 5 tháng 10 năm 2020, https. //oriel. ly/vvB6o

Wikipedia liên kết đến tài liệu trong một trong những chú thích trong bài viết của họ về trường hợp

Thuật ngữ này được lấy từ Hướng dẫn kiến ​​trúc ứng dụng của Microsoft, Phiên bản thứ 2, có sẵn trực tuyến

Excel tự động hóa sử dụng ngôn ngữ nào?

Ngôn ngữ VBA được bao gồm trong gói MS Office miễn phí cho người dùng. VBA được sử dụng để tự động hóa các tác vụ và thực hiện một số chức năng khác ngoài việc tạo và sắp xếp bảng tính.

Ngôn ngữ lập trình nào là tốt nhất cho Excel?

Đối với người dùng Excel có kinh nghiệm, VBA tương đối dễ học vì được tích hợp với Excel. Đây cũng thường là ngôn ngữ tốt nhất để sử dụng khi tự động hóa Excel. Bạn có thể học VBA với Hướng dẫn VBA tương tác, hoàn toàn miễn phí của chúng tôi

Python có thể tự động hóa Excel không?

Sử dụng openpyxl để tự động hóa báo cáo Excel của bạn bằng Python . Bạn chỉ phải sử dụng mô-đun Python openpyxl để nói cho Excel biết bạn muốn làm gì thông qua Python.

Python có hữu ích trong Excel không?

Tự động hóa dễ dàng hơn . Ví dụ: nếu bạn cần chạy cùng một phân tích trên một tập hợp dữ liệu bán hàng mới mỗi tuần, thì việc thực hiện điều này trong Excel sẽ yêu cầu mở một tệp khác theo cách thủ công mỗi tuần và nhập lại công thức cũng như các yếu tố khác cần thiết cho phân tích.