Excel Arama Fonksiyonu

Merhabalar,

Bir excel dosya seçip içerisinden tüm sütunlarda arama yaptırıp oluşan değerleri yeni bir excele yazdırıyorum.

2 farklı problemle karşılaştım.

1- Tarih sütununda Yıl/Ay/Gün ve :Saat: olarak gözüküyor. Üzerine tıkladığımda Gün/Ay/Yıl ve :saat: oluyor. Kırmızı renkle altlarını çizdim aşağıdaki resimde. Kodlarımda C sütunu hücrelerini biçimlendirip kaydetmeme rağmen istediğim sonucu elde edemedim.
İstediğim sonuç: Gün Ay Yıl.
Screenshot 2024-01-26 110149

2- Her türlü aramayı buluyor. Str veya int farketmiyor. Program doğru bir şekilde çalışıyor, bir tek şey haricinde. Aramak istediğim değere tarih(örnek:13.01.2014) yazdığımda; sadece sütun isimlerinin yazdığı boş bir excel’le karşılaşıyorum. Aşağıdaki resimde olduğu gibi.

Kendime çevrimdışı bir yazılım geliştirmeye çalışıyorum. Bu yazılımı 20 bin, 30 bin satırlık bir excel dosyasından, aramak istediğim veriyi dışarı aktarmak amacıyla internetsiz bir ortamda kullanacağım. Bu kodlarla Tkinter altyapısını kullanarak bir yazılım geliştirilebilir mi? Yoksa daha farklı kütüphanelere mi ihtiyacım var.

Kodlarım şu şekilde:

import os
import pandas as pd

Klasör yolu ve dosya adını belirt

folder_path = “C:\Users\ilker\Desktop\excel\”
output_folder_path = “C:\Users\ilker\Desktop\excel\ayiklanan\”
excel = “xlsx”
file_name = input(“Dosya adı?”) + “.” + excel

Excel dosyasının tam yolu

input_excel_path = os.path.join(folder_path, file_name)

Excel dosyasını oku

df = pd.read_excel(input_excel_path)

Kullanıcının gireceği arama değerini alın

search_value = input("Arama yapmak istediğiniz değeri girin: ")

Tüm sütunlarda arama yapın ve sonuçları birleştirin

result_df = pd.DataFrame()
for column in df.columns:
current_df = df[df[column].astype(str).str.contains(search_value, case=False, na=False)]
result_df = pd.concat([result_df, current_df], ignore_index=True)

“C” sütunundaki hücreleri tarih formatına dönüştür

try:
result_df.iloc[:, 2] = pd.to_datetime(result_df.iloc[:, 2], format=‘%d.%m.%Y’, errors=‘coerce’)
except Exception as e:
print(f’Hata: {e}')

Yeni bir Excel dosyasına yaz

output_excel_path = os.path.join(output_folder_path, input(“Yeni Oluşturulacak Excel Adı?”) + “.” + excel)
result_df.to_excel(output_excel_path, index=False)

print(“İşlem tamamlandı. Yeni Excel dosyası oluşturuldu:”, output_excel_path)
print(result_df)

Merhaba,

result_df.iloc[:, 2] = pd.to_datetime(result_df.iloc[:, 2], format="%d.%m.%Y", errors="coerce") ifadesindeki errors parametresini kaldırıp nasıl bir hata aldığınızı görebilirsiniz. Muhtemelen excel dosyasındaki tarih bilgilerinin yer aldığı hücrelerdeki veri formatına uygun bir format yazmıyorsunuz.

Yani eğer excel dosyasındaki tarih verileri "%Y-%m-%d %H:%M:%S" gibi bir biçime sahipse, siz de "%d.%m.%Y" gibi bir format yazarsanız uygun formatı yazmamış olursunuz.

errors="coerce" parametresini kaldırın ve excel dosyasındaki tarihlerin nasıl bir formata sahip olduğuna bakın. Sonra da format kısmında gerekli değişikliği yaparsınız.

Teşekkür ederim verdiğiniz yanıt için. C sütunu hücrelerini tarih formatına dönüştürmek bir işe yaramadı. Yani, “C” sütunundaki hücreleri tarih formatına dönüştür komutu işlevsiz, eklesem de bir eklemesem de.

İsterseniz dosyayı paylaşın, verilere bir bakalım.

Formatı Değiştirmeyen Excel Tarihleri ​​Nasıl Düzeltilir (www-contextures-com.translate.goog)