/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

Lập Trình Python Cho Excel/Python For Excel #007 - Chèn/Tách/Gộp Cột

NỘI DUNG:

Mở file "BangDuLieu_ngaunhien.xlsx" là thực hiện:

1. Tách cột B (Full Name) thành 2 cột Last Name và First Name

2. Gộp 2 cột Last Name (cột C) và First Name (cột D) thành Cột New Full Name (cột E)

3. Tách cột B (Full Name) thành 2 cột Last Name 2 và First Name 2 (Viết theo kiểu tìm hàng cuối cùng tự động)

THỰC HIỆN:

1. Tách cột B (Full Name) thành 2 cột Last Name và First Name

Code:

# === Tách cột
import xlwings as xw

wb = xw.Book(r"C:\tmp\BangDuLieu_ngaunhien.xlsx")
sht = wb.sheets.active

# === tách first name, last name
sht["C:D"].insert()
sht["C2:D2"].value = ["First Name", "Last Name"]

full_names = sht["B3:B11"].value
first_names =[]
last_names=[]

for full_name in full_names:
    # full_name = sht["D4"].value
    list_fullname = full_name.split(" ") # chuyển về list, căn cứ vào dấu khoảng trắng
    list_firstname = list_fullname[:-1] # lấy từ đầu cho đến phần tử gần cuối.
    first_names.append(" ".join(list_firstname))
    list_lastname = list_fullname[-1] # lấy phần tử cuối cùng
    last_names.append(list_lastname)
sht["C3"].options(transpose=True).value = first_names
sht["D3"].options(transpose=True).value = last_names


2. Gộp 2 cột Last Name (cột C) và First Name (cột D) thành Cột New Full Name (cột E)

Code:

# === Tách cột, gộp cột
import xlwings as xw

wb = xw.Book(r"C:\tmp\BangDuLieu_ngaunhien.xlsx")
sht = wb.sheets.active

# === tách first name, last name
sht["C:D"].insert()
sht["C2:D2"].value = ["First Name", "Last Name"]

full_names = sht["B3:B11"].value
first_names =[]
last_names=[]

for full_name in full_names:
    # full_name = sht["D4"].value
    list_fullname = full_name.split(" ") # chuyển về list, căn cứ vào dấu khoảng trắng
    list_firstname = list_fullname[:-1] # lấy từ đầu cho đến phần tử gần cuối.
    first_names.append(" ".join(list_firstname))
    list_lastname = list_fullname[-1] # lấy phần tử cuối cùng
    last_names.append(list_lastname)
sht["C3"].options(transpose=True).value = first_names
sht["D3"].options(transpose=True).value = last_names

# === gộp cột 
sht["E:E"].insert()
sht["E2"].value = "New Full Name"
list_fullname= sht ["C3:D11"].value
list_fullname_join =[]
for fn in list_fullname:
    list_fullname_join.append(" ".join(fn))
### HOẶC
# list_fullname_join = [" ".join(fn) for fn in list_fullname] 

sht["E3"].options(transpose=True).value = list_fullname_join


3. Tách cột B (Full Name) thành 2 cột Last Name 2 và First Name 2 (Viết theo kiểu tìm hàng cuối cùng tự động)

Code:

# === Tách cột (tìm hàng cuối cùng tự động)
import xlwings as xw

wb = xw.Book(r"C:\tmp\BangDuLieu_ngaunhien.xlsx")
sht = wb.sheets.active

# === HOẶC tách first name, last name TỐI ƯU
sht["C:D"].insert ()
sht["C2:D2"].value = ["First Name 2", "Last Name 2"]
last_row = sht[f"B{sht.cells.last_cell.row}"].end("up").row # tìm hàng cuối cùng trong cột B
full_names = sht[f"B3:B{last_row}"].value

def split_fullname(full_name): # hàm tách first name và last name
    list_fullname = full_name.split(" ")
    list_firstname = list_fullname[:-1]
    first_name =" ".join(list_firstname)
    last_name = list_fullname[-1] 
    return [first_name, last_name]

data_fullnames = list(map(split_fullname, full_names)) # trả list of list
sht["C3"].value = data_fullnames

Xong!

Lập Trình Python Cho Excel/Python For Excel #006 - Copy Trích Xuất Cột, Vẽ Biểu Đồ, Xử Lý Chuỗi

 NỘI DUNG:

Mở file "BangDuLieu_ngaunhien.xlsx" và thực hiện

1. Copy và trích xuất dữ liệu theo yêu cầu:

- Copy dữ liệu từ ô A1 đến ô C11 dán vào ô A15 (chỉ copy nội dung)
- Copy dữ liệu từ ô A1 đến ô C11 dán vào ô A15 và giữ nguyên định dạng
- Trích xuất dữ liệu cột B và cột C dán vào ô E3
- Chỉ trích xuất dữ liệu dòng thứ 3 của cột B và cột C dán vào cột H3

2. Vẽ biểu đồ vừa trích xuất (cột B và cột C) ở bản dữ liệu từ ô E3 đến F11

3. Xử lý chuỗi:

- Xử lý theo từng ô:
   + B3: ghi hoa cả cell,
   + B4: ghi hoa chữ đầu tiên của chuỗi,
   + B5: chuyển sang chữ thường,
   + B6: ghi hoa đầu mỗi chữ
- Xử lý theo cột (Ghi hoa từ ô B7 đến ô B9)
- Xử lý theo dòng (Ghi hoa từ ô A2 đến ô C2)

4. Ghi hoa đầu mỗi chữ cho cột B viết code theo kiểu COMPERHENSION


THỰC HIỆN:

1. Copy và trích xuất dữ liệu theo yêu cầu:

- Copy dữ liệu từ ô A1 đến ô C11 dán vào ô A15 (chỉ copy nội dung)
- Copy dữ liệu từ ô A1 đến ô C11 dán vào ô A15 và giữ nguyên định dạng
- Trích xuất dữ liệu cột B và cột C dán vào ô E3
- Chỉ trích xuất dữ liệu dòng thứ 3 của cột B và cột C dán vào cột H3

Code:

import xlwings as xw

wb = xw.Book(r"C:\tmp\BangDuLieu_ngaunhien.xlsx")
sht = wb.sheets.active

# === copy không mất định dạng
sht["A15"].value= sht["A1:C11"].value # chỉ copy giá trị, cách này mất định dạng
sht["A1:C11"].copy(sht["A30"]) # copy nguyên định dạng và giá trị

# === copy trích xuất cột B, cột C
range_zip = zip(sht["B2:B11"].value, sht["C2:C11"].value)
range_zip = list (range_zip)
sht["E2"].value = range_zip # copy toàn bộ

sht["H2"].value = range_zip[3] # lấy dòng thứ 3


2. Vẽ biểu đồ vừa trích xuất (cột B và cột C) ở bản dữ liệu từ ô E3 đến F11

Code:

# === Vẽ biểu đồ
chart1 = sht.charts.add(300, 250) # vị trí biểu đồ là trái tính qua 300, trên tính xuống là 250
chart1.set_source_data(sht["E3:F11"])
chart1.chart_type = "line_markers"
# chart1.chart_type = "3d_pie"
# chart1.chart_type = "stock_hlc"


3. Xử lý chuỗi:

- Xử lý theo từng ô:
   + B3: ghi hoa cả cell,
   + B4: ghi hoa chữ đầu tiên của chuỗi,
   + B5: chuyển sang chữ thường,
   + B6: ghi hoa đầu mỗi chữ
- Xử lý theo cột (Ghi hoa từ ô B7 đến ô B9)
- Xử lý theo dòng (Ghi hoa từ ô A2 đến ô C2)

Code:

import xlwings as xw

wb = xw.Book(r"C:\tmp\BangDuLieu_ngaunhien.xlsx")
sht = wb.sheets.active
full_name = str(sht["B3"].value)
sht["B3"].value = full_name.upper() # ghi hoa cả cell
sht["B4"].value = full_name.capitalize() # ghi hoa chữ đầu tiên
sht["B5"].value = full_name.lower() # ghi thường tòan cell
sht["B6"].value = full_name.title() # ghi hoa đầu mỗi chữ

# === xử lý chuỗi trong cột
full_name = sht["B7:B9"].value
full_name_list =[]
for fn in full_name:
    full_name_list.append(fn.upper()) #chữ hoa
sht["B7"].options(transpose = True).value = full_name_list

# === xử lý chuỗi theo hàng
tieu_de = sht["A2:C2"].value
tieu_de_list =[]
for td in tieu_de:
    tieu_de_list.append(td.upper())
sht["A2"].value = tieu_de_list


4. Ghi hoa đầu mỗi chữ cho cột B viết code theo kiểu COMPERHENSION

Code:

# === Xử lý chuỗi - theo cột
import xlwings as xw

wb = xw.Book(r"C:\tmp\BangDuLieu_ngaunhien.xlsx")
sht = wb.sheets.active

# ===HOẶC xử lý chuỗi trong cột (comprehension)
full_name = sht["B3:B11"].value
full_name_list_2 =[]
full_name_list_2 =[fn.title() for fn in full_name]
sht["B3"].options(transpose = True).value = full_name_list_2


Xong!

/*header slide*/