Teklif al
Süreç

Excel ile yürüyen iş yazılıma nasıl taşınır?

Tabloyu olduğu gibi aktarmak kolay görünür; oysa sütunların bir kısmı girilmiş veri, bir kısmı hesaplanmış sonuç, bir kısmının karşılığı eski araçta hiç yok. Hangisi taşınır, hangisi yeniden kurulur?

Algoriel 11 dk okuma
Excel ile yürüyen iş yazılıma nasıl taşınır?
Bu yazıda
  1. Dışa aktarım dosyasındaki her sütun, eski aracın sorduğu bir sorudur
  2. Hangi sütun girilmiş veri, hangisi hesaplanmış sonuç
  3. Tekrar eden satırlar tek bir üst kaydın altında toplanır
  4. Eski araçta hiç tutulmamış bir alana ne olur
  5. Üç kaynak sistem yan yana
  6. Eski toplamla yeni toplam neden tutmaz
  7. Tabloyu ilk görüşmeye nasıl getirirsiniz

Hesap tablosuyla yürüyen bir işi yazılıma taşımak, tabloyu kopyalamak değil, sütun başına ayrı bir göç kararı vermektir. Eşleme listesinin hangi uçtan yazıldığı sonucu değiştiriyor; önce yeni kaydın neyi tuttuğu belirlenir, eski sütunlar sonra o kaydın alanlarına dağılır. Formül sütununu veri diye taşırsanız eski değer kayıtta kalır, yeni sistem aynı şeyi kaynaklarından hesaplar ve iki sayı ilk aydan ayrışır.

Görüşme çoğu zaman aynı cümleyle açılır: tabloyu verelim, siz olduğu gibi aktarın. Cümle makul, çünkü tablo yıllardır işi yürütüyor ve içindeki her sayının bir karşılığı var. Sorun tablonun yanlış olması değil. Sorun, tablonun tek bir şey olmaması: içinde birbirine hiç benzemeyen üç tür sütun yan yana duruyor ve üçü göçte üç ayrı şey yapıyor.

Dışa aktarım dosyasındaki her sütun, eski aracın sorduğu bir sorudur

Dışa aktarım düğmesine bastığınızda elinize gelen dosya işin tamamı değildir. O dosyada yalnız eski aracın sormayı bildiği sorular vardır. Sormadığı hiçbir soru orada bir sütun olarak durmaz.

Diş kliniği CRM’i bunun en açık örneğini taşıyor. Klinikte iş, genel amaçlı bir randevu aracıyla yürüyordu ve o araç yalnız randevunun ne zaman olduğunu kaydediyordu. Hastanın tedavi planının hangi adımında olduğu ise orada bir alan değildi. Dolayısıyla dışa aktarım dosyasında o sütun boş değil, hiç yok.

Aynı klinikte kaynak da tek dosya değildi. Randevu takvimde, kesilen fatura defterde, ay sonu tablosu üçüncü bir yerde duruyordu. İşin bir kısmının yazılımın dışında, elle tutulan ikinci defterde yürümesi başlı başına bir konu. Göç açısından tek sonucu şu: eşleme listesi bu kaynakların her birinden ayrı bir sütun kümesi alır.

Geçişin ilk belgesi o eşleme listesidir. Sol tarafa eski aracın her sütunu yazılır, sağ tarafa o sütunun yeni kayıtta hangi alana düştüğü. İki tür boşluk çıkar ve ikisi de bilgidir. Sağı boş kalan satır, eski aracın hiç tutmadığı şeydir. Solu boş kalan satır, yeni kaydın eski araçta karşılığı olmayan alanıdır.

Listenin hangi uçtan yazıldığı sonucu değiştirir. Liste eski tablodan başlarsa, eski aracın kayıt birimi sessizce yeni sisteme kopyalanır: bir satır bir randevuydu, yeni sistemde de bir kayıt bir randevu olur. Klinikte kurulan düzen bunun tersidir; önce tedavi planı diye bir kaydın ne tuttuğu yazıldı, randevular o kaydın adımlarına bağlandı. Bu yüzden liste yeni kayıttan başlar: önce yeni sistemde bir kaydın neyi tuttuğu belirlenir, sonra eski sütunlar o kaydın alanlarına dağıtılır.

Eşleme listesinin işi bu yüzden her sütunun ne olduğuna karar vermektir.

Hangi sütun girilmiş veri, hangisi hesaplanmış sonuç

Tablonun sütunları önce ikiye ayrılır: birine biri değer yazdı, ötekini bir formül üretti. Ayırma testi tek sorudur. Bu hücrenin değeri başka hücrelerden mi çıkıyor? Çıkıyorsa o sütun bir sonuçtur.

Sonuç sütunu yeni sisteme veri olarak aktarılmaz. Eşleme listesinde karşısına bir alan adı değil, bir cümle yazılır: bu değer kaynak kayıtlardan hesaplanacak.

Şantiye personel takip sistemi bunun kâğıt üstündeki hâlini gösteriyor. Kâğıt cetvelde çalışılan süre bir sütundu. Yeni sistemde ise doldurulan bir alan değil; iki okuma birbirini bulduğunda ortaya çıkan bir değer. Tutar tarafı da aynı: sistem o rakamı ayrıca bir yerde saklamıyor, kaynak kayıtlardan üretiyor. Bir değerin neden ikinci kez girilmek yerine üretildiğini türetilen kayıt ile ikinci kez girilen kayıt ayrımında açtık; burada bizi ilgilendiren tek şey, o sütunun göçte bir hedefi olmamasıdır.

Sonuç sütununu taşımak ikinci bir gerçeklik üretiyor. Taşıdığınız eski değer kayıtta durur; yeni sistem aynı şeyi kendi kaynaklarından hesaplar. İki sayı ilk aydan itibaren ayrışmaya başlar ve hangisinin doğru sayılacağını hiç kimse yazılı olarak belirlememiştir. Raporun hangi sayıyı basacağı o noktada artık bir yazılım sorusu olmaktan çıkar.

Bir de eski dayanağın taşınması var. Kâğıt cetvelde hesap, doğrulanamayan satırların üstüne kuruluyordu; itiraz çıktığında geriye gösterilecek bağımsız bir kayıt kalmıyordu. O sütunu olduğu gibi aktarmak, dayanaksızlığı da beraberinde aktarır. Sayı artık bir yazılımın içinde durduğu için daha sağlam görünür, oysa arkasında hâlâ aynı kâğıt vardır.

Klinik tarafında aynı kural ay sonu tablosunda işliyor. O tablo üçüncü bir yerden elle çıkarılıyordu. Göç kararı bu yüzden nettir: tablo taşınmaz, tablonun beslendiği kayıtlar taşınır.

Karşı durum bir tanedir ve önemlidir. Formül sütunu bazen bir hesap değil bir kural taşır: bir oran, bir katsayı, bir tarife. O zaman taşınacak şey hücre değil kuralın kendisidir ve kural bir veri satırı olarak değil, sistemin ayarı olarak girer. Kural dosyadan dosyaya ya da kişiden kişiye değişiyorsa göçten önce sabitlenmesi gerekir; iki farklı katsayıyla dolmuş bir tablo yeni sisteme tek bir tarife olarak geçemez.

Tekrar eden satırlar tek bir üst kaydın altında toplanır

Üçüncü tür sütun kendi başına bakıldığında düpedüz veridir. Sorun sütunda değil, satırın tekrarındadır.

Kokudankokuya mağazasının kataloğu bu sorunun iki ucunu birden gösteriyor. Standart ürün modeli her kokuyu tek satır sayar ve hacim farkını açıklama metnine iter; o zaman satır sayısı gerçek kayıt sayısından azdır. Hacimleri ayrı ürün olarak açtığınızda ise liste aynı kokunun adıyla uzayıp gider; bu kez satır sayısı kayıt sayısından fazladır. Mağazada işleyen düzen ikisi de değil. Her koku tek bir ürün kaydıdır ve her hacim o kaydın altında kendi fiyatını ve stoğunu taşıyan ayrı bir birimdir.

Buradan bir tablo okuma kuralı çıkıyor. Tekrar eden bir satır grubunda satırdan satıra değişmeyen sütunlar tek bir üst kaydın alanlarıdır; değişen sütunlar o kayda bağlı alt kayıtların. Elinizdeki satır sayısı, ihtiyacınız olan kayıt sayısı değildir.

Bu bir tablo okuma kuralıdır, bir model kuralı değil. Alt kaydın nerede biteceğini, hangi farkın ayrı bir birim hangisinin yalnız bir özellik olduğunu söylemez. O sınırı ürün varyantı sınırını çizen fiyat ve stok testi çiziyor. Eşleme listesi o testin cevabını hazır bulur, kendisi üretmez.

Aynı kural bambaşka bir tabloda ters yönden çalışıyor. Şantiye puantajında tekrar eden şey ürün değil kişidir: aynı işçi bir şantiyenin cetvelinde bir satır, başka bir şantiyeninkinde ayrı bir satırdır. Burada tekrar listeyi şişirmez, kişiyi böler. Grubun sabit sütunu kişidir; değişen sütunları saha ve tarihtir. Yeni sistemde bu grup tek bir kişi kaydına ve ona bağlı saha kayıtlarına iner. Aynı kişinin iki sahadaki süresi ayrı ayrı durur ve toplandığında hangi payın nereden geldiği görünür kalır.

Tekrar grubu yoksa bu bölümün söyleyecek bir şeyi yoktur. Satır zaten kayıttır ve eşlemenin o kısmı bire bir çıkar.

Eski araçta hiç tutulmamış bir alana ne olur

Eşleme listesinin en zor satırı, sağı değil solu boş kalanıdır: yeni kaydın taşıdığı bir alan vardır, eski araçta karşılığı yoktur.

Klinikte bu alan plan adımıydı. Yeni sistemde bir randevunun bağlandığı yer bir saat değil, tedavi planındaki sıralı bir adımdır; plan yeniden düzenlendiğinde takvim de onunla birlikte yerine oturur. Geçmiş randevuların bağlanacağı bir plan kaydı ise kaynakta yok. O sütunu geriye doğru doldurmanın tek yolu tahmindir ve tahminle dolan bir alan, rapora girdiği anda veri muamelesi görür.

Şantiyede aynı boşluk doğrulama tarafındadır. Kâğıt cetvelde satırı yazan kişi ile satırın doğruluğunu üstlenen kişi aynıydı; ay sonunda hangi kişinin hangi sahada bulunduğunu gösteren bağımsız bir kayıt yoktu. Yeni sistemde giriş kaydı kimin okuttuğunu ve hangi sahada olduğunu kendi üstünde taşıyor. Kâğıt satırlarını aktarırsanız beyanı aktarmış olursunuz. Doğrulama taşınmaz, çünkü kaynakta hiç üretilmedi.

Bu yüzden karar sütun başına verilir ve seçenek üçtür.

  • Olduğu gibi taşı. Girilen veridir; karşılığı yeni kayıtta vardır, biçim dönüşümü dışında bir iş yoktur.
  • Boş bırakarak taşı. Alanın kaynakta karşılığı yoktur; kayıt geçer, alan boş kalır ve geçiş gününden itibaren dolmaya başlar.
  • Hiç taşıma. Ne kayıt ne alan geçer.

Geçiş günü, bir sütun kümesinin dolmaya başladığı gündür. Bu fark gizlenmez, kayıtta işaretlenir. Geçmişten gelen satır beyan olarak, geçiş sonrası kayıt doğrulanmış olarak okunur. İşaret konmazsa iki küme aynı raporda aynı ağırlıkla toplanır ve raporun ne kadarının beyana dayandığı bir daha ayrılamaz.

Üçüncü seçenek de gerçek bir karardır. Geçmiş kayıt hiçbir gelecek hesaba girmiyorsa onu hiç taşımamak bir kapsam kararıdır. Ama bu kararı yazılımcı vermez; hangi geçmişin hangi hesaba gireceğini bilen taraf sizsiniz. Bizim işimiz seçeneği adıyla masaya koymaktır.

Üç kaynak sistem yan yana

Üç farklı kaynak düzeni aynı üç soruyla okunduğunda tablo şöyle çıkıyor.

Eski araç ve satırıİşin kaydı yeni sistemdeVeri olarak taşınan sütunlarTaşınmayan: sonuç mu, hiç mi yoktu
Genel amaçlı randevu yazılımı; satır bir randevu: saat ve hasta. Yanında fatura defteri ve ay sonu tablosuSıralı seanslara bölünmüş tedavi planı; her randevu planın bir adımına bağlıHasta; randevunun tarihi ve saatiPlan adımı: hiç yoktu, geçiş gününden başlar. Ay sonu tablosu: sonuç, taşınan kayıtlardan yeniden okunur
Düz katalog listesi; satır bir koku–hacim çifti, koku adı her hacimde yeniden yazılıKoku tek ürün kaydı; her hacim o kayda bağlı, kendi fiyatını ve stoğunu taşıyan bir birimKoku adı ve açıklaması tekrar grubundan bir kez; fiyat ve stok hacim başınaTekrar eden koku sütunları: kopya, kayıt değil. Satır sayısı ürün sayısı olarak taşınmaz
Kâğıt puantaj cetveli ve ondan çıkarılan hak ediş hesabı; satır: kişi, gün, saha, çalışılan süreGiriş ve çıkış çifti: kişi, konumdan gelen saha, iki okuma arasındaki süreKişi; tarih; saha, beyan olarak işaretliSüre ve hak ediş tutarı: sonuç, çiftten yeniden hesaplanır. Doğrulama: hiç yoktu, geçiş gününden başlar

Tablonun ilk sütunu ve son iki sütunu bir eşleme muhakemesidir; ikinci sütun her satırda yeni sistemin fiilen tuttuğu kayıttır. Parfüm satırı ötekilerden bir noktada ayrılıyor ve bu ayrım saklanacak bir şey değil: orada taşınmayan sütun bir sonuç değil, tekrar eden bir kopyadır. Klinik ve şantiye satırlarında ise taşınmayanın iki türü birlikte görünüyor: bir sonuç sütunu ve kaynakta hiç bulunmayan bir alan. Kendi tablonuzda ikisinin de olması beklenir; yalnız biri çıkıyorsa büyük ihtimalle öteki henüz aranmamıştır.

Eski toplamla yeni toplam neden tutmaz

Geçişten sonraki ilk mutabakat çoğu işte en gergin gündür. Eski tablodaki toplam ile yeni sistemin gösterdiği toplam tutmaz ve ilk yorum hep aynıdır: aktarımda bir şey kayboldu.

Farkı önce yapısal kalemlere ayırmak gerekiyor, çünkü iki tanesi aktarım doğru yapıldığında da çıkar.

Birincisi, sayılan birimin değişmesi. Hacim başına satır tutan bir katalogdan geçildiğinde ürün sayısı düşer. Hiçbir hacim silinmemiştir; tekrar eden başlık satırları tek kayda inmiştir ve hacimler o kaydın altında durmaktadır. Eski listede ürün diye sayılan şey, yeni sistemde ürünün bir birimidir. Karşılaştırdığınız iki sayı aynı şeyin adını taşıyor ama aynı şeyi saymıyor.

İkincisi, eşleşme koşulu. Şantiyede yeni sistem süreyi ancak giriş ile çıkış birbirini bulduğunda üretiyor; karşılığı gelmemiş bir giriş sayıya dönüşmüyor. Kâğıt cetvelde ise her satır doğrudan bir sayıya çevriliyordu. İlk ayın toplamı bu yüzden düşük çıkar ve düşen kısım kaybolan süre değil, arkasında eşleşmiş bir kayıt bulunmayan süredir. Çıkışı gelmemiş girişin sahada nasıl yönetildiği ayrı bir konu; mutabakat açısından tek önemli olan, o girişin toplama girmemesidir.

Mutabakatın kendisi de yöntem değiştirmek zorunda. Eski birimle yeni sistemi saymak her zaman “tutmuyor” der. Doğru karşılaştırma satır sayısı ve tablo toplamı üzerinden değil, kayıt sayısı ve kaynak kayıt çiftleri üzerinden yapılır: kaç üst kayıt var, her birine kaç birim bağlı, kaç çift eşleşmiş, kaç kayıt açık duruyor.

Bu ikisi çıkarıldıktan sonra kalan fark yapısal değildir. O fark gerçek bir aktarım hatasıdır ve aranacak yer sonuç sütunu değil kaynak kayıtlardır: eşleme listesinde yanlış alana düşmüş bir sütun, biçim dönüşümünde bozulmuş bir tarih, yanlış yerden kesilmiş bir tekrar grubu. Düzeltme de toplamda yapılmaz, kaynak kayıtta yapılır ve toplam kendiliğinden yerine oturur. Bir aktarımın doğru sayılabilmesi için farkın ne kadarının açıklanabildiğinin ayrılması gerekir.

Tabloyu ilk görüşmeye nasıl getirirsiniz

İlk görüşmeye çoğu zaman tablonun özeti gider ve özet tam da kararı belirleyen şeyi siler. Özette formül görünmez, tekrar grupları düzleşir, hiç tutulmamış alanlar zaten yazılmaz.

Götürülecek şey tablonun kendisidir, üç işaretle.

  • Formül hücreleri görünür durumda olsun. Hangi sütunun bir hesap olduğunu size tablonun kendisi söyler; sütun başlıkları söylemez.
  • Tekrar eden satır grupları işaretli olsun. Bir grubun nerede başlayıp nerede bittiği, üst kaydın sınırını doğrudan çizer.
  • Eski aracın hiç tutmadığı alanlar ayrı bir listede dursun. Bu liste tabloda yoktur; sizin kafanızdadır ve yazıya dökülmediği sürece görüşmede hiç konuşulmaz.

Üç işaret üç göç kararını doğrudan veriyor. Görünen formül sütununun karşısına “kaynaktan hesaplanır” yazılır. İşaretli tekrar grubu üst kayıt ve alt kayıt olarak ayrılır. Boş alan listesi geçiş gününü belirler. Eşleme listesi böylece ilk görüşmede yazılabilir hâle gelir ve ikinci görüşmeye kararların listesi kalır.

Geçiş gününden sonra kaydın sahada nasıl oluştuğu bu yazının konusu değil; kaydın kim tarafından, nerede ve hangi anda açıldığı iş süreç takibi tarafında duruyor. Eşleme listesi orada biter.

Bir de karşı durum var. Her tablo göç kararı gerektirmez. Satır işin kaydıyla birebir örtüşüyorsa ve hiçbir sütun formülden çıkmıyorsa eşleme listesi bire bir çıkar; taşınacak şey bir kopyadır ve bu yazının o tabloya söyleyeceği bir şey yoktur.

Masaya tablonun özetini değil kendisini koyun: formüller açık, tekrar eden satır grupları işaretli, eski aracın hiç tutmadığı alanlar ayrı listede. Bu kararların üstüne kurulan bir yönetim sisteminin neyi kapsadığını yönetim yazılımları sayfasında anlattık.

Temel çıkarımlar

  • Tabloyu sütun sütun okuyun; her sütun için üç karardan biri verilir: olduğu gibi taşı, kaynaktan yeniden hesapla ya da geçiş gününden başlat.
  • Formülün ürettiği hücreyi veri olarak taşımayın; taşınan eski sonuç ile yeni sistemin kendi hesabı ilk mutabakatta birbirinden ayrışır.
  • Satır sayınızı kayıt sayınız sanmayın; tekrar eden bir satır grubu yeni sistemde tek bir üst kayıt ve ona bağlı alt kayıtlara iner.
  • Eski aracın hiç tutmadığı alanı geçmişe elle doldurmayın; alanı boş taşıyın, geçiş gününden itibaren doldurun ve iki dönemi kayıtta ayrı işaretleyin.
  • Mutabakatı tablo toplamıyla değil kayıt sayısı ve kaynak kayıt çiftleriyle yapın; yapısal farkla açıklanamayan kısım aranacak gerçek hatadır.

Bu yazıda sık sorulanlar

  • Tablodaki verileri olduğu gibi yeni yazılıma aktarabilir miyiz?

    Bir kısmını aktarabilirsiniz; hangi kısmın aktarılacağı sütun sütun belirlenir. Elle girilmiş sütun veri olarak olduğu gibi geçer. Başka hücrelerden hesaplanan sütun geçmez; yeni sistem o değeri altındaki kayıtlardan yeniden üretir. Eski aracın hiç tutmadığı alanın aktarılacak bir karşılığı yoktur ve geçiş gününden itibaren dolmaya başlar. Diş kliniği CRM'inde ay sonu tablosunun taşınacak bir sütun karşılığı yoktu. Görüşmeye giderken her sütunun yanına elle mi girildiğini, formülle mi hesaplandığını yazın.

  • Aktarımdan sonra kayıt sayısı düştü; veri mi kaybettik?

    Büyük ihtimalle kaybetmediniz; aktarımla birlikte sayılan birim değişti. Kokudankokuya'nın kataloğunda hacim başına ayrı ürün açmak listeyi aynı kokuyla satır satır doldurur; mağazada her koku tek bir ürün kaydıdır ve her hacim o kaydın altında kendi fiyatıyla, kendi stoğuyla ayrı bir birimdir. Hiçbir hacim silinmez; tekrar eden başlık satırları tek kayda iner. Mutabakatınızı satır sayısıyla değil, kayıt sayısı ve o kayıtlara bağlı birimlerle yapın.

  • Toplam süre eski cetveldeki kadar çıkmadı; yeni sistem eksik mi hesaplıyor?

    Eksik hesaplamıyor; iki toplam farklı şeyleri sayıyor. Şantiye personel takip sisteminde süre yalnız giriş okuması ile çıkış okuması eşleştiğinde çıkıyor; çıkışı gelmemiş bir giriş süreye dönüşmüyor, açık duruyor. Kâğıt cetvel ise her satırı doğrudan bir sayıya çeviriyordu ve o satırı doğrulayan hiçbir kayıt yoktu. Düşen kısım kaybolan süre değil, arkasında kayıt olmayan süredir. Eski cetvelinizi toplamla değil, kaynak kayıt çiftleriyle karşılaştırın.

  • Eski programda hiç tutulmamış bir bilgiyi geçmiş kayıtlara sonradan girebilir miyiz?

    Giremezsiniz; o alana sonradan yazılan her değer bir tahmin olur. Diş kliniği CRM'inde bir randevu, tedavi planındaki bir adımın ne zaman yapılacağını söyler; kliniğin eski randevu aracında böyle bir adım hiç kaydedilmediği için geçmiş randevuların bağlanacağı bir plan kaydı kaynakta yok. Böyle bir sütun boş taşınır: alan geçiş gününden itibaren dolar ve her kayıt geçişten önce mi sonra mı olduğunu işaretli taşır. Eski aracınızın hiç tutmadığı alanları görüşmeden önce listeleyin.

Yazar hakkında

Algoriel

Uzaktan çalışan web yazılım ajansı

İşletmelere özel web ve mobil yazılım geliştiriyoruz. Blogda, yazılım yaptırırken ve yayından sonra karşınıza çıkan soruları cevaplıyoruz.

Etiketler:
  • hesap tablosundan yazılıma geçiş
  • eski programdan veri aktarımı
  • sütun eşleme listesi
  • geçiş günü
  • ilk mutabakat

İnşa edilecek bir sisteminiz mi var?

Kurmak istediğiniz bir sistem varsa teklif formundan anlatabilirsiniz.