Microsoft เตรียมนำ Python มาใช้ใน Excel
(theverge.com)- Microsoft เริ่มเปิดพรีวิวสาธารณะของความสามารถแบบบูรณาการสำหรับการ วิเคราะห์และการแสดงผลข้อมูลด้วย Python ภายใน Excel
- สามารถเข้าถึง Python ได้จากริบบอนของ Excel โดยไม่ต้องติดตั้งแยก และปรับแต่งผลลัพธ์ร่วมกับ สูตร แผนภูมิ และ PivotTable ที่มีอยู่เดิมได้
- ฟังก์ชัน PY ใหม่จะแสดงข้อมูลจาก Python บนกริดสเปรดชีต และด้วยความร่วมมือกับ Anaconda ทำให้สามารถใช้ pandas, statsmodels, Matplotlib และอื่น ๆ ใน Excel ได้
- การประมวลผลจะรันบน Microsoft Cloud ไม่ใช่ในเครื่อง แล้วจึงส่งผลกลับมายังเวิร์กชีต พร้อมสร้างงานแสดงผลด้วย Matplotlib และ Seaborn ได้
- พรีวิวสาธารณะเริ่มต้นบน Windows ใน Beta Channel ของ Microsoft 365 Insiders และหลังจบช่วงพรีวิว ฟีเจอร์บางส่วนจะถูกจำกัดหากไม่มีไลเซนส์แบบชำระเงิน
การวิเคราะห์ด้วย Python ที่เข้ามาอยู่ใน Excel
- Microsoft เพิ่ม ความสามารถการทำงานร่วมกับ Python ใน Excel เพื่อให้สามารถจัดการและวิเคราะห์ข้อมูลได้ภายในสเปรดชีต
- ผู้ใช้สามารถเข้าถึง Python ได้โดยตรงจากริบบอนของ Excel จึงทำงานวิเคราะห์ขั้นสูงต่อได้โดยไม่ต้องออกจากสภาพแวดล้อม Excel ที่คุ้นเคย
- กราฟและผลลัพธ์จากไลบรารีที่สร้างด้วย Python สามารถนำมาผสานกับสูตร แผนภูมิ และ PivotTable ของ Excel เพื่อปรับแต่งต่อได้
แนวทางแบบฝังในตัวโดยไม่ต้องติดตั้งเพิ่ม
- การทำงานร่วมกับ Python ถูกให้มาเป็นส่วนหนึ่งของ ตัวเชื่อมต่อในตัว ของ Excel และ Power Query
- เข้าถึงได้โดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มหรือกำหนดค่าส่วนเสริมแยกต่างหาก
- ฟังก์ชัน PY ใหม่จะแสดงข้อมูลจาก Python ภายในกริดสเปรดชีตของ Excel
ไลบรารีจาก Anaconda และการแสดงผลข้อมูล
- Microsoft ร่วมมือกับ Anaconda ซึ่งเป็นคลังแพ็กเกจ Python สำหรับองค์กร เพื่อให้สามารถใช้ไลบรารี Python หลัก ๆ ได้ใน Excel
- ไลบรารีที่ใช้งานได้มีดังนี้
- pandas
- statsmodels
- Matplotlib
- ผู้ใช้ Excel สามารถสร้างสูตร PivotTable และแผนภูมิจากข้อมูลของ Python ได้
- ยังสามารถใช้ไลบรารีทำกราฟอย่าง Matplotlib และ Seaborn เพื่อสร้างงานแสดงผลต่อไปนี้
- heatmap
- violin plot
- swarm plot
การประมวลผลทำบน Microsoft Cloud
- แม้โค้ด Python จะถูกเขียนและใช้งานภายในสเปรดชีต Excel แต่การประมวลผลจะเกิดขึ้นบน Microsoft Cloud ไม่ใช่บน Excel ในเครื่อง
- ผลลัพธ์จากการรันจะถูกส่งกลับมายังเวิร์กชีตของ Excel อีกครั้ง
ขอบเขตการให้บริการและเงื่อนไขไลเซนส์
- พรีวิวสาธารณะของ Python in Excel เปิดให้ใช้ใน Beta Channel ของ Microsoft 365 Insiders
- ช่วงแรกจำกัดเฉพาะ Windows
- Microsoft มีแผนขยายไปยังแพลตฟอร์มอื่นในภายหลัง
- ในช่วงพรีวิว ฟีเจอร์นี้รวมอยู่ในการสมัครใช้งาน Microsoft 365
- หลังจบช่วงพรีวิว หากไม่มีไลเซนส์แบบชำระเงิน ฟีเจอร์บางส่วนจะถูกจำกัด
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ในฐานะคนที่เคยทำงานเป็น นักพัฒนา Excel และเคยพยายามใส่ Python เข้าไปใน Excel แต่ไม่สำเร็จ ข่าววันนี้จึงเป็นเรื่องน่าประหลาดใจที่น่ายินดี
ประมาณ 7 ปีก่อน ผมมีโอกาสจะออกจากทีม Excel ตอนนั้นหัวหน้าของหัวหน้าผมรู้ว่าผมอยากใส่ Python เข้าไปใน Excel และบอกว่าถ้าอยู่ต่อจะให้รับผิดชอบงานนี้ สิ่งที่คิดว่าเป็นงาน 6 เดือน กลายเป็นโปรเจกต์ประมาณ 3 ปี และในที่สุดก็เปิดตัวในทิศทางของการใส่ ฟังก์ชันกำหนดเองด้วย JavaScript เข้าไปใน Excel โดยฝั่ง Python ค่อย ๆ เลือนหายไป
Python ก็เคยถูกรัน “บนคลาวด์” โดยใช้ AzureML v1 เป็นฐาน แต่มีการถกเถียงกันว่าจะให้รันในเครื่องด้วยหรือไม่ ทีมพาร์ตเนอร์ AzureML มีการปรับโครงสร้างองค์กร รีลอนช์ รับคนใหม่ และ PM ลาออก ขณะเดียวกันทีมพาร์ตเนอร์อีกทีมสังเกตว่าโค้ดของเราสามารถใช้รัน JavaScript ในโปรเซสภายนอกได้ เราจึงใช้เวลาไปกับการปล่อยฟีเจอร์นั้นมากกว่า Python
งานหลักคือการเปลี่ยน calculation engine ของ Excel เพื่อให้ฟังก์ชันสามารถทำ การคำนวณแบบอะซิงโครนัส ได้ ทำให้ผู้ใช้ยังทำงานกับส่วนอื่นของสเปรดชีตต่อได้ ระหว่างที่ endpoint ระยะไกลกำลังคำนวณ ไม่ว่าจะเป็น JavaScript, Python หรืออย่างอื่น ก่อนหน้านี้สเปรดชีตจะถูกล็อกระหว่างคำนวณ ซึ่งไม่เหมาะกับการคำนวณที่ใช้เวลานานและไม่รู้ว่าจะจบเมื่อไร สงสัยเหมือนกันว่าบางส่วนที่เราทำไว้ได้ถูกนำมาใช้ในฟีเจอร์นี้หรือเปล่า
“Recalc or die”
ปัญหาของ Office.js คือสำหรับผู้ใช้ Excel ทั่วไป การเริ่มต้นยากเกินไปเพราะกอง dependency ของ npm และแม้แต่นักพัฒนามืออาชีพก็ยังลำบากพอสมควร จุดที่ทำให้ผู้ใช้ไม่ต้องใช้ Node.js เป็นเรื่องที่น่าพอใจ: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...
ตอนนี้เป็นโปรเจกต์ที่ทิ้งไปแล้ว: https://alphawolfxl.com/
ตอนขอให้บางคนช่วยทดสอบเบต้า พวกเขาบอกว่า “บริษัทคงไม่ยอมจ่ายเงิน” ทำให้รู้สึกว่าเสียเวลาเปล่าและเลิกทำไป พอมาเห็นสิ่งนี้ตอนนี้ก็รู้สึกซับซ้อน
โดยรวมแล้วขาด โค้ดที่ใช้งานได้จริง สำหรับดูว่า JavaScript ทำงานใน Excel อย่างไร และตอนนี้รู้สึกแทบเหมือนระดับ “วิธีวาดนกฮูก”
ผมหวังว่าจะรองรับ การรัน Python ในเครื่อง ด้วย ไม่ใช่ใช้เฉพาะ Microsoft Cloud แต่แค่ฟีเจอร์นี้อย่างเดียวก็น่าจะทำให้ Excel ทันสมัยขึ้นได้มาก
อาจทำให้ความต้องการเว็บไซต์สำหรับแสดงข้อมูลประเภทนี้หมดไปด้วย ที่ทำงานเก่าผมเคยสร้างเว็บไซต์วิเคราะห์สำหรับใช้กันไม่กี่คนภายใน ถ้าตอนนั้นมีฟีเจอร์แบบนี้ ก็น่าจะใช้สิ่งนี้แทนได้เพียงพอ
ผมอธิบายซ้ำ ๆ ว่าแค่สร้าง data mart ด้วย SQL Server แล้วใช้เครื่องมือ ETL เติมข้อมูลที่จำเป็นต่อการวิเคราะห์เข้าไปก็พอ ไม่ต้องให้เข้าถึงข้อมูลต้นทาง แต่ทุกคนก็ยังมองแปลก ๆ แล้วแทนที่จะทำแบบนั้นกลับอยากทำโปรเจกต์นำ Tableau มูลค่าหลายล้านดอลลาร์มาใช้ ทั้งที่ผู้ใช้ไม่ได้ต้องการ มันน่าเหลือเชื่อจริง ๆ
หรือจะส่งผ่าน UI feedback ของ Excel เว็บ/เดสก์ท็อปก็ได้ PM อ่าน feedback พวกนั้นทั้งหมด
เราสามารถรับประกันประสบการณ์ที่สม่ำเสมอให้ผู้ใช้ทุกคนได้ ลองคิดภาพว่าเมื่อเวลาผ่านไป เวอร์ชันเริ่มแตกแขนง แล้วแต่ละคนต้องดูแล Python distribution ในเครื่องของตัวเองและต้องรับประกันว่ามันทำงานกับ Excel ได้ น่ากลัวมาก
เมื่อแชร์เวิร์กบุ๊ก Excel กับผู้ใช้อีกคน ต้องทำให้การคำนวณทำงานได้ทันที ถ้าพึ่งพาการติดตั้ง Python ในเครื่องที่ไม่เหมือนกันก็ทำไม่ได้ และผู้ใช้จะหงุดหงิดมาก
เรื่องความปลอดภัยก็ใหญ่ ลองนึกถึงการเปิดไฟล์ Excel ที่สามารถรันโค้ด Python ด้วยสิทธิ์ของผู้ใช้ในเครื่องได้
ผมเห็นด้วยเต็มที่กับประเด็นที่สองเช่นกัน การสร้างแอปภายในด้วย Python ให้ผสานกับโครงสร้างพื้นฐาน IT เดิมนั้น อย่างดีที่สุดก็เป็นเรื่องน่าหงุดหงิด Excel แทบจะเป็นส่วนหนึ่งของโครงสร้างพื้นฐาน IT อยู่แล้วแทบทุกที่ และเป็นแคนวาสแบบตอบสนองที่เขียนโปรแกรมได้
เปิดเผยข้อมูล: ผมทำงานอยู่ในทีมออกแบบฟีเจอร์นี้
ที่นี่มองว่ามาโครเป็นช่องทางให้รันมัลแวร์บนเครื่องลูกข่าย และเห็นว่าประโยชน์ของมันไม่ได้มากพอให้รับความเสี่ยงนั้น
ตรงนี้เห็นสัญญาณอันตรายชัดเจน พลังโดยเนื้อแท้ของ Excel มาจากการที่เวิร์กบุ๊กสามารถ ดำรงอยู่ได้อย่างอิสระ แต่ตอนนี้กระบวนการจะถูกผูกติดกับคลาวด์ไปตลอด
อีก 3 ปีข้างหน้า เมื่อต้องเปิดเวิร์กบุ๊กของเพื่อนร่วมงานที่เสียชีวิตไปแล้ว ก็จะขึ้นอยู่กับว่าผู้ขายยังคงรองรับฟีเจอร์ผสานรวมนี้ต่อไปหรือไม่
ถ้างานอะไรก็ตามมีขั้นแรกเป็น “หาวิธีทำให้ซอฟต์แวร์กลับมาทำงานได้อีกครั้ง” ก็น่ากลัวมาก ตลอดหลายทศวรรษที่ผ่านมาเคยเจอแบบนี้หลายครั้งกับ add-in ต่าง ๆ ของ Excel, Outlook, Word และ add-in เหล่านั้นก็ไม่ได้ประมวลผลจากระยะไกลด้วยซ้ำ
ดังนั้นจึงสำคัญที่จะลองกู้คืน backup จริง ๆ เป็นครั้งคราว หรือในกรณีแบบนี้ก็ตรวจสอบไฟล์สำคัญให้แน่ใจ
ตอนแรกตื่นเต้นกับ “Python ใน Excel” แต่พอเห็นคำว่า “รันบนคลาวด์” ก็หมดไฟ ดูเหมือนไม่มีเหตุผลอื่นนอกจากพยายามผูกเราไว้กับบริการคลาวด์ ความรู้สึกคล้ายกันมากกับการบอกว่าจะปกป้องฉันจากหมึกพิมพ์ที่ไม่ปลอดภัย
ปกติผมชอบผลิตภัณฑ์ MS Office และพยายามมองในแง่ดี ถ้ามีเหตุผลที่ดีและฟังขึ้นว่าทำไมต้องบังคับให้รัน Python บนคลาวด์ นอกเหนือจาก lock-in ก็อยากให้บอกหน่อย
คิดว่าจุดที่ควรหนีออกจาก M$ นั้นเลยมาแล้วสัก 5 ปี ผลิตภัณฑ์ทุกอย่างตั้งแต่ Windows ไปจนถึง Office มี ฟีเจอร์ต้านผู้บริโภค อยู่แล้ว
แน่นอนว่าเข้าใจด้วยว่าผู้ใช้ขั้นสูงของ Excel+Python มีแนวโน้มจะคุ้นเคยกับการนำและดูแล Python runtime ของตัวเองอยู่แล้ว
ยังมีคนที่ใช้ Excel บนอุปกรณ์ iOS และ Android ด้วย วิธีนี้ทำให้พวกเขาใช้และอ่าน Python ภายในสเปรดชีตได้เช่นกัน
ในปี 2005 ผมกับเพื่อน ๆ ตั้งบริษัทชื่อ Resolver Systems และสร้าง Resolver One ซึ่งเป็นสเปรดชีตที่ใช้ Python ได้
น่าเสียดายที่ไม่ประสบความสำเร็จในตลาด จึงเปลี่ยนทิศไปสร้าง PythonAnywhere ซึ่งเป็นสภาพแวดล้อมเขียนโค้ดและโฮสติ้งออนไลน์ ตัวนี้ไปได้ค่อนข้างดี และเมื่อปีที่แล้วถูก Anaconda เข้าซื้อ ตอนนี้ก็เหมือนวงจรปิดครบแล้ว
ขอพูดให้ชัดว่า ทีมที่ทำฟีเจอร์นี้ภายใน Anaconda เป็นคนละทีมกับทีม PythonAnywhere โดยสิ้นเชิง ถ้าเป็นคนกลุ่มเดียวกันก็คงเป็นเรื่องเล่าแบบฮอลลีวูดได้พอดี
แต่ปัญหาคือ Resolver อิงกับ IronPython จึงมีไลบรารีจำนวนไม่น้อยที่ทำงานไม่ถูกต้อง
ชอบมากที่สามารถแก้ไขเล็ก ๆ น้อย ๆ ได้โดยตรงจากเว็บแอป PythonAnywhere และพอเริ่มใช้ GCP/AWS ก็คิดถึงฟีเจอร์แบบนั้นมาก
พอเห็นประโยคว่า “การคำนวณ Python จะรันบน Microsoft Cloud” เพื่อนร่วมงานก็พูดเล่นว่า “ขนาด Microsoft ยังจัดการการติดตั้ง Python ในเครื่องบน Windows ไม่ได้เลยสินะ…”
แต่ก็สนุกดีถ้าลองจินตนาการว่า Microsoft แก้ปัญหา การตั้งค่าสภาพแวดล้อม Python ในเครื่อง ได้จริง ๆ ในที่สุด และ Excel กลายเป็นตัวจัดการแพ็กเกจ Python มาตรฐานทั่วทั้งระบบปฏิบัติการ
$ excelpip install fastapi==9.11.23กำลังค้นหา fastapi version 11.09.2023…ผมนึกว่าจะขุดลึกลงไปในพื้นที่ปัญหานี้ แล้วคิดค้น package manager ขึ้นใหม่ที่ไปไกลกว่าสิ่งที่ฝั่งโอเพนซอร์สทำมา
แต่แทนที่จะเป็นแบบนั้น ตอนนี้เรามี Windows Update, Windows Features, Microsoft Store, Software Center, winget โดย winget คือ package manager สำหรับ Windows ที่ Microsoft ทำขึ้น แต่เป็นเครื่องมือที่ต้องติดตั้งจาก package manager สำหรับ Windows อีกตัวที่ Microsoft ทำขึ้นเช่นกัน
$GOV_AGENCYที่ใช้ Excel เวอร์ชันล้าหลังไปหนึ่งรุ่นจะร่วมงานกับโลกภายนอกอย่างไร?LibreOffice น่าจะอ่านทิศทางให้ออกตั้งนานแล้ว โดยหลักการแล้วการเขียนสคริปต์ด้วย Python ทำได้ แต่ยุ่งยากและเลอะเทอะเกินไป และก็ดูเหมือนไม่มีโรดแมปสำหรับปรับปรุงด้วย
คำเตือนเดียวกันนี้ใช้ได้กับเดสก์ท็อป Linux และแอปโดยรวมเช่นกัน แพลตฟอร์มแบบปิดจำนวนมากขึ้นเรื่อย ๆ จะย้ายไปอยู่บนคลาวด์ และมักจะเพิ่มส่วนขยายความสามารถ “AI” ขั้นสูงให้แอปเดิมผ่าน Python API
น่าเสียดายที่หลายกระแสในโลกโอเพนซอร์สถูกทำให้เป็น ไซโล มากเกินไป ศักยภาพที่ควรจะมากกว่าผลรวมของแต่ละส่วนกำลังถูกปล่อยให้สูญเปล่า
สิ่งที่ไม่พอใจที่สุดในสเปรดชีต LibreOffice และ Apple Numbers คือการจัดการ การคัดลอก/วางช่วงที่เลือกแบบไม่ต่อเนื่อง
ตัวอย่างเช่น ในข้อมูล 5 แถว 3 คอลัมน์ หากเลือกแถว
1 2 3,7 8 9,a b cแล้วคัดลอก จากนั้นวางใต้d e fExcel จะต่อเฉพาะแถวที่เลือกเข้าด้วยกัน ส่วน LibreOffice และ Numbers จะรักษาแถวว่างตรงกลางไว้ด้วยผมหาการตั้งค่าที่เปลี่ยนพฤติกรรมนี้ไม่เจอ ถึง Excel เองก็อาจทำให้คนที่ต้องการรักษาช่องว่างหงุดหงิดในทางกลับกันได้ แต่ผมแทบไม่เคยต้องการรักษาช่องว่างเลย LibreOffice และ Numbers จึงใช้งานไม่สะดวก
เหตุผลที่ผู้คนไม่ค่อยใส่ใจนักคือกรณีใช้งานยอดนิยมที่สุดของชุดออฟฟิศคือการทำงานร่วมกับรูปแบบไฟล์ของ Microsoft
หากต้องการรันสคริปต์ใน LibreOffice แนะนำให้ใช้ APSO script organiser: https://extensions.libreoffice.org/en/extensions/show/apso-a...
เมื่อกลุ่มผู้ใช้สูงวัยที่ไม่เคยใช้ภาษาโปรแกรมมิงมาก่อนแก่ตัวลงและเกษียณไป คนที่เรียนรู้วิธีผสาน Python เข้ากับ Excel สุดท้ายก็จะชอบ Python มากกว่า เพราะยืดหยุ่นและขยายได้มากกว่า
นอกจากใช้เป็นกระดานคำนวณพื้นฐานแล้ว ก็ไม่มีเหตุผลต้องใช้ Excel ถ้ามีใครขอสเปรดชีต ผมจะทำระบบสร้างด้วย Python อัตโนมัติให้ เพื่อจะได้ไม่ต้องไปจัดการเองอีก
น่าผิดหวัง
“Python ใน Excel ขณะนี้พร้อมให้ผู้ใช้ที่รัน Beta Channel บน Windows ใช้งาน ฟีเจอร์นี้จะเริ่มปล่อยให้ Excel สำหรับ Windows ก่อนตั้งแต่บิลด์ 16.0.16818.2000 แล้วจึงตามไปยังแพลตฟอร์มอื่น” [1]
“Python ใน Excel ใช้งานได้ใน Excel สำหรับ Windows ฟีเจอร์นี้ยังใช้ไม่ได้ใน Excel สำหรับ Mac, Excel สำหรับเว็บ, Excel สำหรับ iPad, Excel สำหรับ iPhone และ Excel สำหรับ Android บนแพลตฟอร์มที่ไม่รองรับ คุณสามารถดูเวิร์กบุ๊กที่มี Python ได้ แต่เมื่อคำนวณเซลล์ Python ใหม่จะแสดงข้อผิดพลาด” [2]
[1] https://techcommunity.microsoft.com/t5/excel-blog/announcing...
[2] https://support.microsoft.com/en-us/office/introduction-to-p...
“การคำนวณด้วย Python ทำงานบน Microsoft Cloud” งั้นขอผ่าน
เดี๋ยวก่อน LibreOffice มี Python มาหลายปีแล้ว แต่ไม่มีใครสนใจ แล้วกลับบ่นกันว่า “งานจริงจัง” ต้องมี VBA ที่เข้ากันได้ 100% คนพวกนั้นตอนนี้อยู่ไหนกัน?
ถ้า LibreOffice VBA เข้ากันได้กับ Office VBA ก็คงไม่มีเหตุผลต้องเก็บระบบ Windows เก่า ๆ ไว้ที่ไหนสักแห่งต่อไป
เหตุผลที่เราทำสิ่งนี้ก็เพื่อหาเงิน และไม่มีใครอยากซื้อสเปรดชีต Excel ที่รันบน Excel ไม่ได้
ผมทำงานบน Linux ด้วย LibreOffice Calc และ Excel ก็รองรับ Linux เป็นศูนย์ ดังนั้นถ้ามี ความเข้ากันได้ ในระดับที่ส่งให้ลูกค้าได้โดยไม่มีปัญหาก็คงดี แต่ตอนนี้ยังห่างไกลจากจุดนั้นมาก
ถ้าไม่รู้ว่ามีอยู่ คนก็ไม่ใช้
ถ้าคุ้นกับอย่างอื่น คนก็จะเรียกร้องสิ่งนั้น