Tablolardaki Metin Verilerle Çalışma Ustalık Sınıfı

Kerem Aydın·11 Temmuz 2026·⏱4 dk

Bir tablonun satır veya sütunundan veri çıkarmak için, Excel ve Google E-Tablolar'daki tek seferlik görevler için yerleşik metin fonksiyonlarını (MID, FIND, SPLIT) kullanın; büyük hacimli verileri otomatikleştirmek için ise Python/SQL'de düzenli ifadeler ve dize yöntemlerini tercih edin. Araç seçimi veri formatının karmaşıklığına bağlıdır: sabit uzunluk pozisyon fonksiyonları gerektirirken, değişken yapılar düzenli ifadeler veya ayırıcılara göre bölme işlemi gerektirir.

Kısa cevap: Excel'deki basit görevler için =MID() veya =TEXTAFTER() kullanın. Google E-Tablolar'da =REGEXEXTRACT() idealdir. Binlerce satırı işlemek için Python (Pandas kütüphanesi) ile bir betik yazmak veya SUBSTRING içeren bir SQL sorgusu kullanmak daha iyidir.

İşleme Yöntemi Seçim İlkeleri

Veri çıkarmanın etkinliği, kaynak verinin yapısına doğrudan bağlıdır. Çalışmaya başlamadan önce hücre formatını analiz edin:

  1. Sabit konum: Veriler her zaman aynı karakterlerde bulunur (örneğin, ülke kodu her zaman ilk 2 karakterdir).
  2. Ayırıcılar: Değerler virgül, noktalı virgül, tire veya boşluklarla ayrılmıştır.
  3. Karmaşık kalıplar: Veriler değişken bir yapıya sahiptir (örneğin, "Sipariş No:123 oluşturuldu" logundan sipariş numarasını çıkarma).

Performans ipucu: Tablo 10.000'den fazla satır içeriyorsa, Excel'de karmaşık formül zincirlerinden kaçının; bu, dosyayı yavaşlatır. Böyle durumlarda verileri dışa aktarın ve bunları bir Python betiği veya veritabanı sorgusu ile işleyin.

Tek Bir Satırdan (Hücreden) Veri Çıkarma

Hedef bilgi tek bir hücrenin metni içinde bulunduğunda, dize manipülasyon fonksiyonları uygulanır.

Karakter Konumlarıyla Çalışma

İstenen parçanın tam uzunluğu veya konumu bilindiğinde kullanılır.

  • Excel / Google E-Tablolar: MID fonksiyonu.
    • Sözdizimi: =MID(metin, başlangıç_konumu, karakter_sayısı)
    • Örnek: 5. karakterden başlayarak 3 karakter çıkarma: =MID(A2, 5, 3)
  • SQL: SUBSTRING fonksiyonu.
    • Örnek: SELECT SUBSTRING(column_name FROM 5 FOR 3) FROM table;
  • Python: Dize dilimleme (slicing).
    • Örnek: result = text[4:7] (indeksleme 0'dan başlar).

Ayırıcılara Göre Bölme

Listeler, etiketler veya bileşik değerler (Ad;Soyad) için uygundur.

  • Excel 365: TEXTSPLIT fonksiyonu.
    • Örnek: =INDEX(TEXTSPLIT(A2, ","), 2) — virgülden sonraki ikinci öğeyi döndürür.
  • Google E-Tablolar: INDEX ile birlikte SPLIT fonksiyonu.
    • Örnek: =INDEX(SPLIT(A2, ","), 1, 2)
  • Python (Pandas): str.split yöntemi.
    • Örnek: df['col'].str.split(',', expand=True)[1]

Boşluklara dikkat: Ayırıcılara göre bölme yapılırken genellikle fazla boşluklar kalır. İleri işleme sırasında hatalardan kaçınmak için sonucu her zaman TRIM (Excel/SQL/Python) fonksiyonu içine alın.

Düzenli İfadelerin Kullanımı

Dize yapısı karmaşık olduğunda ve basit bölme işlemine uygun olmadığında vazgeçilmezdir.

  • Google E-Tablolar: REGEXEXTRACT fonksiyonu.
    • Örnek: "Ürün Kodu: 4589" metninden sayıları çıkarma: =REGEXEXTRACT(A2, "\d+")
  • Excel: REGEX.EXTRACT fonksiyonu (yeni sürümlerde mevcuttur) veya eklentiler.
  • Python: re modülü.
    • Örnek: re.search(r'\d+', text).group()

Tablo Sütunlarının Toplu İşlenmesi

Sütunlarla çalışırken görev ölçeklendirilir: çıkarma mantığını tüm satırlara aynı anda uygulamak gerekir.

Dizi Formülleri

Formülü aşağı doğru sürüklemek yerine dizi hesaplamaları kullanın.

  • Google E-Tablolar: Mantığı ARRAYFORMULA içine alın.
    • Örnek: =ARRAYFORMULA(IF(B2:B=""; ""; MID(B2:B, 2, 5))) — çıkarma işlemini otomatik olarak B sütununun tamamına uygular.
  • Excel: Dinamik diziler, TEXTSPLIT gibi fonksiyonlar kullanıldığında sonucu bitişik hücrelere döndürerek ("dökülme") otomatik olarak çalışır.

SQL'de Toplama ve Filtreleme

Veriler bir veritabanında saklanıyorsa, çıkarma işlemi sorgu düzeyinde gerçekleşir.

-- Sadece aktif kategori için açıklamanın ilk 10 karakterini çıkar
SELECT SUBSTRING(description, 1, 10) AS short_desc
FROM products
WHERE category = 'Electronics';

Çıkarılan parçaları tekrar bir dizede birleştirmek için STRING_AGG (PostgreSQL/SQL Server) veya GROUP_CONCAT (MySQL) kullanın.

Python'da Vektörizasyon (Pandas)

Pandas kütüphanesi, vektörizasyon sayesinde milyonlarca satırı saniyeler içinde işlemeye olanak tanır.

import pandas as pd

# 'info' sütununda "id:123;date:2024" şeklinde metin olduğunu varsayalım
# Tüm sütun için düzenli ifade kullanarak yalnızca ID'yi çıkarıyoruz
df['order_id'] = df['info'].str.extract(r'id:(\d+)')

# Karmaşık bir sütunu birkaç yeni sütuna bölüyoruz
df[['city', 'street']] = df['address'].str.split(', ', expand=True)

Farklı Görevler İçin Araçların Karşılaştırılması

GörevEn İyi AraçNeden
10–50 satırın hızlı analiziExcel / Google E-TablolarProgramlama gerektirmez, görsel kontrol sağlar.
Karmaşık kalıp (loglar, karışık metin)Google E-Tablolar (REGEX) veya PythonGüçlü düzenli ifade motorları.
>100.000 satır işlemePython (Pandas) veya SQLYüksek hız, düşük bellek tüketimi.
Rapor otomasyonuPythonBetiği kaydetme ve zamanlanmış çalıştırma imkanı.

Ayrıştırma Sırasındaki Yaygın Hatalar

  1. Boş değerlerin göz ardı edilmesi: Hücre boşsa formüller #VALUE! veya NaN hataları verebilir. Her zaman kontroller ekleyin (örneğin, IF(ISBLANK(...))).
  2. Bölgesel ayarların dikkate alınmaması: Rusça Excel'de argüman ayırıcı noktalı virgüldür (;), İngilizce Excel'de ise virgüldür (,). Formüller kopyalandığında bozulmasının sık görülen nedeni budur.
  3. Kodda "sihirli sayılar": Sabit konum numaralarının kullanılması (örneğin, 5. ile 10. karakterleri almak), veri formatı biraz değiştiğinde tehlikelidir. Bunun yerine bir işaretçiye (ayırıcıya) göre arama yapmak daha iyidir.
  4. Karakter kodlaması: Veritabanından CSV'ye aktarma ve ardından betiklerde işleme sırasında Kiril alfabesiyle ilgili sorunlar ortaya çıkabilir. UTF-8 kodlamasını kullanın.

SSS

İki parantez arasındaki metni nasıl çıkarırım? Google E-Tablolar'da şunu kullanın: =REGEXEXTRACT(A1, "\((.*?)\)"). Excel'in yeni sürümlerinde: =REGEX.EXTRACT(A1, "\((.*?)\)").

Bitişik olmayan birkaç sütundan verileri tek bir hücreye çıkarabilir miyim? Evet. Excel'de CONCATENATE veya & operatörünü kullanın: =A2 & " " & C2. Python'da: df['new'] = df['col1'] + " " + df['col3'].

Ayırıcı metnin içinde geçiyorsa ne yapmalıyım? Bölme sayısı için bir sınır kullanın (split fonksiyonlarında limit argümanı) veya bağlamı dikkate alan daha katı düzenli ifadeler kullanın (örneğin, ayırıcı sadece boşluklarla çevriliyse).