OĞUZ EROL · MarkdownEN
Markdown’ı açKapat
Kaynak: https://oguzerol.com/coklu-secimli-iliskili-kayit-formu/

[![Örnek ekran: Bir hücreye sıkışmayan çoklu seçim. Proje PJ-12. M-01 · Kesim. M-02 · Paketleme. 2 ekipman seçildi. Her ekipmanın ayrı kaydı.](https://oguzerol.com/gorseller/hizmet-kapaklari/coklu-secimli-iliskili-kayit-formu-webapp-v1-tr.webp)

Görseli büyüt](https://oguzerol.com/gorseller/hizmet-kapaklari/coklu-secimli-iliskili-kayit-formu-webapp-v1-tr.webp)

# Çoklu Seçimli İlişkili Kayıt Formu: Bir Projeye Birden Çok Ürün ve Kişi Bağlamak

[Oğuz Erol](https://oguzerol.com/hakkimda/)  |  17 dk okuma

Çoklu seçimli ilişkili kayıt formu, bir kaydı (proje, servis işi, teklif) birden çok başka kayda (ürün, parça, kişi) bağlarken her seçimi ayrı bir bağlantı satırı olarak saklayan formdur. Seçimler tek hücrede virgülle birleşmez. Her bağlantının kendi adedi, eklenme tarihi ve ekleyeni olur. Böylece “bu ürün kaç projede var, kaç adet” sorusu tek formülle doğru cevaplanır. Bu uygulamayı şirketinize özel geliştiriyorum. Aynı mantığı Excel’de üç sayfalık bir düzenle de kurabilirsiniz, formülleri aşağıda veriyorum.

Kurgusal bir makine hattı üreticisinde tedarikçi, bir servo sürücü modelinde (S-210) zorunlu yazılım güncellemesi bildiriyor. Proje tablosunda kullanılan ürünler tek hücrede virgülle yazılı. Kalite müdürünün formülü 11 proje gösteriyor. Gerçekte S-210, 14 projede 31 adet kullanılıyor. Formülün saydığı 11 projenin 2’si başka bir model (S-2100), gerçek 14 projenin 5’i ise hiç görünmüyor. Eski listeyle planlanan saha ziyaretlerinde 2 gereksiz gidiş olacak, müşterideki 3 projede 7 sürücü ise atlanacaktı.

Bu sayfa formun ve kayıt yapısının tasarımını anlatıyor. Mevcut Excel dosyanızı bir veritabanına taşımak ise [Excel’den SQL veritabanına kontrollü geçişin](https://oguzerol.com/excel-sql-veritabani-gecisi/) konusu.

## Çoklu seçim neden tek hücrede saklanmamalı?

Çoklu seçim tek hücrede saklanınca seçim bir kayıt olmaktan çıkar, metne dönüşür. Raporda bu metni ancak içinde arayarak sayabilirsiniz, metin araması da yazımı tutmayan satırı kaçırır, benzer kodu yanlışlıkla sayar. Adet, tarih gibi seçime ait bilgi de aynı metnin içine parantezle sıkışır ve toplanamaz.

Excel ve Google E-Tablolar’da bu sorun iki biçimde görülür:

- **Virgüllü hücre.** “M-01, S-210 (x2), PLC-5” gibi. Okuması kolaydır. Sayması, süzmesi ve toplaması zordur.
- **Yan yana sütun.** “Ürün 1, Ürün 2, Ürün 3” diye açılan sütunlar. Dördüncü ürün gelince biri “Ek ürünler” sütunu açar, formüller o sütunu görmez. Adet için her ürünün yanına bir sütun daha gerekir.

Aynı sorun üç tanıdık yerde tekrar eder. Bir projeye birden çok ürün ve kişi bağlanır. Bir servis işine birden çok parça, her birinin seri numarasıyla, işlenir. Bir teklife birden çok kalem girer, her kalemin teklif anındaki fiyatı ve iskontosuyla. Üçünde de doğru yapı aynıdır.

## Ara tablo nedir, neden üç liste gerekir?

Ara tablo, iki listeyi birbirine bağlayan üçüncü bir listedir: her satırı bir proje ile bir ürünün tek bir bağlantısıdır. Projeler bir listede, ürünler bir listede durur. “Hangi projede hangi ürün” bilgisi ise ikisinin arasında, kendi satırlarında tutulur. Bu sayfada ara tablonun her satırına **bağlantı satırı** diyorum.

Bu sayfada istasyon, sürücü ve kontrol ünitesinin hepsine ürün diyorum; görseldeki “ekipman” aynı anlamda. PJ-12 ekranı bu yapının formdaki karşılığı: M-01 · Kesim ve M-02 · Paketleme ayrı kayıt olarak seçilmiş. Arkada her ürün için bir bağlantı satırı var, aynı projenin sürücüleri üçüncü satırda:

| Proje no | Ürün kodu | Adet | Ekleyen |
| --- | --- | --- | --- |
| PJ-12 | M-01 | 1 | Proje mühendisi |
| PJ-12 | M-02 | 1 | Proje mühendisi |
| PJ-12 | S-210 | 2 | Proje mühendisi |

Ara tablonun asıl kazancı, bilginin doğru yerde durmasıdır. Ürünün adı, birimi ve tedarikçisi ürün kartına aittir, bir kez yazılır. Adet, eklenme tarihi ve sahada güncellendi işareti bağlantıya aittir, çünkü aynı ürün başka projede başka adetle kullanılır. Bunu ürün kartına yazarsanız bir projenin notu, başka projede aynı ürünü kullanan herkese yanlış bilgi verir.

Kişiler için de aynı yapı kurulur. Proje–kişi bağlantısında kişinin o projedeki rolü (proje müdürü, devreye alma mühendisi) bağlantıda durur, kişi kartında değil. Teklif kaleminde teklif anındaki birim fiyat ve iskonto bağlantıda saklanır. Ürün kartındaki güncel fiyat değişince eski teklif değişmez.

## Örnek: “S-210 kaç projede var?” sorusu

*Örnek veri, kurgusaldır.* Paketleme ve kesim hatları kuran bir makine üreticisi düşünün. Son üç yılda 40 proje açılmış. Proje listesi bir Excel dosyası; durumu Açık olan proje atölyede montajda, Teslim edildi olan müşteride çalışıyor. D sütununda projede kullanılan ürünler virgülle yazılı. Birkaç yıl önce biri E sütununa “Ek ürünler” adıyla bir sütun daha açmış.

Bir sabah tedarikçinin teknik bildirimi geliyor: S-210 servo sürücüde yazılım güncellemesi zorunlu. Benzer adlı S-2100 modeli bildirimin dışında. Kalite müdürünün iki sorusu var: S-210 hangi projelerde ve kaç adet var, bunların hangisi müşteride? Müşteridekilere saha ziyareti, atölyedekilere sevk öncesi güncelleme planlanacak.

Kalite müdürü eski dosyada üç formül deniyor. Sonuçları betikle sınadım:

| formül | sonuç | doğru cevap |
| --- | --- | --- |
| `=EĞERSAY(D:D;"*S-210*")` | 11 proje | 14 proje |
| `=EĞERSAY(D:E;"*S-210*")` | 13 proje | 14 proje |
| `=EĞERSAY(D:D;"S-210")` | 0 proje | 14 proje |
| adet toplamı | hesaplanamıyor | 31 sürücü |

İngilizce Excel’de `COUNTIF`, ayırıcı virgül. Formüller şu sebeplerle yanılıyor:

- **Alt dize.** `*S-210*` joker araması “S-2100” yazan iki projeyi de sayıyor. Microsoft’un yardım sayfasına göre yıldız işareti herhangi bir karakter dizisinin yerini tutar ([ÇOKEĞERSAY, Microsoft Destek](https://support.microsoft.com/en-us/office/countifs-function-dda3dc6e-f74e-4aee-88bc-aa8c2a866842), 16 Ekim 2026’da okudum).
- **Yazım.** Üç projede kod “S210”, “S 210” ve tedarikçinin PDF’inden kopyalanmış en tireyle (–) “S–210” yazılmış. Üçü de eşleşmiyor. Küçük harfle yazılan “s-210” ise sayılıyor, çünkü EĞERSAY ölçütü büyük küçük harf ayırmıyor ([EĞERSAY, Microsoft Destek](https://support.microsoft.com/en-us/office/countif-function-e0de10c6-f885-4e71-abb4-1f464816df34), 16 Ekim 2026’da okudum). Sorun harf değil, karakter.
- **Yan sütun.** İki projede S-210 yalnız E sütununda. D:D aralığı onları görmüyor. Aralığı D:E yapınca bulunuyorlar ama alt dize ve yazım sorunu yerinde kalıyor.
- **Tekrar.** Bir projede “S-210, S-210” yazılmış. Hücre bir kez sayılıyor, adet ise belirsiz.
- **Joker olmadan** hücrenin tamamı “S-210” olmalı. Hiçbir hücre yalnız tek ürün taşımadığı için sonuç sıfır.
- **Adet.** “(x2)”, “x2”, “(4 adet)”, “(2)” yazımları karışık. Hiçbir formül bunları güvenle toplamaz.

Aynı veri ara tabloda dört satırlık bir rapor verir (F ve I sütunlarını aşağıdaki Excel düzeninde açıklıyorum):

| soru | formül | sonuç |
| --- | --- | --- |
| Kaç projede var? | `=ÇOKEĞERSAY(ProjeUrun!B:B;"S-210";ProjeUrun!I:I;1)` | 14 proje |
| Kaç adet? | `=ÇOKETOPLA(ProjeUrun!C:C;ProjeUrun!B:B;"S-210";ProjeUrun!I:I;1)` | 31 sürücü |
| Müşteride kaç proje? | `=ÇOKEĞERSAY(ProjeUrun!B:B;"S-210";ProjeUrun!F:F;"Teslim edildi";ProjeUrun!I:I;1)` | 9 proje |
| Müşteride kaç adet? | `=ÇOKETOPLA(ProjeUrun!C:C;ProjeUrun!B:B;"S-210";ProjeUrun!F:F;"Teslim edildi";ProjeUrun!I:I;1)` | 20 sürücü |

Joker yok, çünkü ürün kodu listeden seçilmiş ve hücrede yalnız kod duruyor. S-2100 ayrı bir koddur, ayrı sayılır: 2 proje, 3 sürücü.

### Aynı gün çıkan karar

Kalite müdürünün planı şöyle:

- **Müşterideki 9 proje, 20 sürücü:** saha ziyareti. Ziyareti, proje–kişi bağlantısında o projenin devreye alma mühendisi olarak görünen kişi yapar.
- **Atölyedeki 5 proje, 11 sürücü:** sevk öncesi kontrol listesine “S-210 yazılım sürümü” maddesi eklenir.
- **Her güncelleme bağlantı satırına işlenir:** güncellendi işareti, tarih ve yapan kişi. Ürün kartına değil, çünkü güncelleme o projedeki sürücülere yapılır.

Eski dosyadaki 11 projelik listeyle aynı plan yapılsaydı 8 saha ziyareti çıkacaktı. Bunların 2’si S-2100 kullanan iki projeye gereksiz gidiş olacaktı. Müşterideki 3 projede 7 sürücü ise listede hiç görünmeyecekti. Atölyede de 2 projedeki 6 sürücü sevk öncesi kontrolden kaçacaktı.

Bu kararı eski dosya da verebilirdi, yeter ki her seçim kendi satırında ve listeden seçilmiş olsun. Sorun Excel’de değil, düzendeydi.

## Excel’de kalacaksanız önerdiğim düzen

Üç sayfa açın. Her sayfayı Excel tablosu olarak biçimlendirin, açılır listeler bu tablolardan beslensin. Microsoft’a göre listenin kaynağı bir tabloysa, tabloya eklenen ya da silinen öğe açılır listeye kendiliğinden yansır ([Microsoft Destek](https://support.microsoft.com/en-us/office/create-a-drop-down-list-7693307a-59ef-400a-b769-c5402dce407b), 16 Ekim 2026’da okudum).

- **Projeler:** A Proje no, B Müşteri kodu, C Durum (Taslak, Açık, Teslim edildi, İptal), D Proje müdürü
- **Urunler:** A Ürün kodu, B Ad, C Grup, D Durum (Aktif, Pasif), E Bağlantı satırı sayısı
- **ProjeUrun:** A Proje no, B Ürün kodu, C Adet, D Eklenme tarihi, E Ekleyen, F Proje durumu, G Mükerrer kontrolü, H Çıkarıldı (tarih), I Sayılır

ProjeUrun’da A ve B sütunları açılır listeyle dolar, serbest metin yazılmaz. F, G, I ve Urunler!E formüldür:

- F2, proje durumunu getirir: `=DÜŞEYARA(A2;Projeler!A:C;3;YANLIŞ)` (İngilizce `VLOOKUP`, `FALSE`)
- I2, bağlantının geçerli olup olmadığını gösterir: `=EĞER(H2="";1;0)` (İngilizce `IF`). Projeden çıkarılan ürünün satırını silmeyin, H’ye çıkarma tarihini yazın. I sıfıra döner, satır sayımlardan düşer ama geçmişte durur. Örnekte PJ-38’deki S-210 çıkarılsa proje sayısı 13’e, adet 30’a iner.
- G2, aynı proje–ürün ikilisinin kaç kez geçerli girildiğini sayar: `=ÇOKEĞERSAY(A:A;A2;B:B;B2;I:I;1)`. 1’den büyükse satır mükerrerdir. Örnekte PJ-17’deki “S-210, S-210” iki satır olarak girilseydi G2 sonucu 2 olacak, proje sayısı 14 yerine 15 çıkacaktı.
- Urunler!E2, ürünün kaç bağlantı satırında geçtiğini sayar, çıkarılmışlar dahil: `=EĞERSAY(ProjeUrun!B:B;A2)`. S-210 için sonuç 14. Sıfırdan büyükse o ürünü silmeyin, durumunu Pasif yapın.

**Mükerreri yazarken engellemek** için veri doğrulaması kullanılabilir. Microsoft’un yardım sayfası tek sütunda benzersiz değer için `=EĞERSAY($A$2:$A$10;A2)=1` biçiminde özel formül örneği veriyor ([Microsoft Destek](https://support.microsoft.com/en-us/office/apply-data-validation-to-cells-29fecbcc-d1b9-42c1-9d76-eff3ce5f7249), 16 Ekim 2026’da okudum). B sütununda açılır liste zaten bir doğrulama kuralı olduğu için ikiliye uyarladığım kuralı C (Adet) sütununa koyuyorum: `=ÇOKEĞERSAY($A$2:$A$500;A2;$B$2:$B$500;B2;$I$2:$I$500;1)=1`. Kuralı önce C2’ye girin (Veri > Veri Doğrulama > Özel), sonra C3:C500’e kopyalayın. Kural yalnız 2–500. satırları kapsar, adet A ve B’den sonra yazılmalı. Aynı ikili ikinci kez yazılırsa adet girilemez, çıkarılmış bir bağlantıyı yeniden eklemek serbest kalır. Bu uyarlamayı betikte sınadım, Excel’de denemedim. Microsoft’a göre doğrulama yalnız hücreye doğrudan yazılan veride çalışır, kopyalanan ya da doldurulan veride uyarı çıkmaz ([Microsoft Destek](https://support.microsoft.com/en-us/office/more-on-data-validation-f38dee73-9900-4ca6-9301-8a5f6e1f0c4c)). G sütunu bu yüzden kalmalı.

İki sınır kalıyor. Urunler sayfasından bir satırı silmenizi engelleyen hiçbir şey yok; silerseniz ProjeUrun’daki satırlar kodu taşır, bağlı formüller hata verir. Kimin neyi değiştirdiği de bağlantı satırında tutulmaz.

**Eski virgüllü hücreleri nasıl taşırsınız?** Power Query’de D sütununu virgülden bölüp her parçayı ayrı satıra indirebilirsiniz. Microsoft’un belgesinde bu adım, gelişmiş seçeneklerde bölme yönü olarak satırların seçilmesiyle anlatılıyor (İngilizce arayüzde Split into: Rows) ([Microsoft Learn](https://learn.microsoft.com/en-us/power-query/split-columns-delimiter), 16 Ekim 2026’da okudum). Bölmeden sonra parçaların başındaki boşluğu kırpın; virgülden sonraki boşluk kalırsa ” S-210” ile “S-210” ayrı değer sayılır. Bölme “S210” ile “S-210”u birleştirmez, “(x2)” yazısını adete çevirmez; yazımları ürün koduna eşleyen küçük bir karşılık tablosu gerekir.

**Farklı yazımları nasıl bulursunuz?** Önce geniş, sonra dar arayın. Örnek dosyada `=EĞERSAY(D:E;"*210*")` 16, `=EĞERSAY(D:E;"*S-210*")` 13 verir; aradaki 3 hücre farklı yazılmıştır. Bölünmüş sütunu “210” içerenlere süzünce 10 farklı parça çıkar, adet yazıları ayıklanınca 6 yazım kalır (biri S-2100).

## Bağımlı açılır liste: önce grup, sonra model

Bağımlı açılır liste, ikinci listenin seçenekleri ilk listede seçilene göre daralan listedir. Bu formda kullanıcı önce ürün grubunu (sürücü, istasyon, kontrol ünitesi) seçer, sonra yalnız o gruptaki aktif modelleri görür. S-210 ile S-2100 listede kodu ve adıyla ayrı satırlarda durur. Kod klavyeden yazılmadığı için “S 210” diye bir kayıt oluşamaz.

Uzun listelere arama eklenir; pasif ürün listeden düşer ama eski bağlantılarda adıyla okunur. Seçeneklerin kullanıcıya, müşteriye ya da stoğa göre nasıl daraltılacağını [bağlı açılır listeli özel formlarda](https://oguzerol.com/bagli-acilir-listeli-ozel-formlar/) ayrıca anlattım. Bu sayfanın konusu, seçilen birden çok kaydın işe nasıl bağlandığı.

Excel ve Google E-Tablolar’da durum şu (16 Ekim 2026’da resmî yardım sayfalarından okudum):

- **Excel’in açılır listesi** bir hücreye tek öğe seçtirir. Microsoft’un açılır liste sayfası çoklu seçim seçeneği tarif etmiyor (yukarıdaki Microsoft Destek bağlantısı).
- **Google E-Tablolar** chip biçimli açılır listede birden çok seçime izin veren bir seçenek sunuyor (İngilizce yardım sayfasında “Allow multiple selections”). Ama Google’a göre mobilde çoklu seçim açık olsa bile birden fazla seçenek şu an seçilemiyor ([Google E-Tablolar Yardım](https://support.google.com/docs/answer/186103)). Masa başında etiketlemek için yeterli olabilir. Sahada telefondan seçim yapılacaksa yetmez.

## Bir kayıt silinince bağlı kayıtlara ne olur?

Bir kayıt silinince ne olacağı, silinen şeyin türüne göre baştan yazılan bir kuraldır. Önerim üç kural: kullanılan ürün silinmez, pasife alınır. Taslak proje silinirse bağlantı satırları onunla gider. Bağlantı çıkarılırsa proje de ürün de yerinde kalır.

Veritabanlarında bu davranış ilişkiye yazılır. PostgreSQL belgesindeki örnek tam bu durum: siparişte hâlâ geçen bir ürünün silinmesi engelleniyor, sipariş silinince sipariş kalemleri de siliniyor ([PostgreSQL belgesi, yabancı anahtarlar](https://www.postgresql.org/docs/current/ddl-constraints.html)). Belgenin gerekçesi de aynı: kalem siparişin parçasıdır, ürün ise ayrı bir şeydir.

| ne silinir ya da değişir | önerdiğim davranış | neyi önler |
| --- | --- | --- |
| Bağlantısı olan ürün | Silinemez. Pasif yapılır: yeni projede seçilmez, eski projelerde adıyla görünür | 14 projelik geçmişin bir tıkla kaybolması |
| Hiç kullanılmamış, yanlış açılmış ürün kartı | Silinebilir | Listede ölü kod birikmesi |
| Taslak proje | Silinebilir, bağlantı satırları onunla birlikte silinir | Sahipsiz bağlantı satırı |
| Açık ya da teslim edilmiş proje | Silinmez, İptal durumuna alınır | Müşterideki sistemin kaydının kaybolması |
| Projeden ürün çıkarma | Satır silinmez, “çıkarıldı” işareti ve tarih alır | “Bu sürücü bu projede hiç var mıydı?” sorusunun cevapsız kalması |
| Teslim edilmiş projede değişiklik | Gerekçe zorunlu, başka biri onaylar | Sahada yapılan değişikliğin kayda geçmemesi |
| İşten ayrılan çalışan | Hesabı kapanır, eski proje bağlantılarında adı ve rolü kalır | Devreye alma geçmişinin kaybolması |

Pasife almak bağlantı satırlarına dokunmaz: eski raporlar ve sayımlar aynı kalır, ürün yalnız yeni seçim listesinden düşer. Bu tasarımda ad değişikliği de bağlantıyı bozmaz, çünkü bağlantı değişmeyen bir iç kimliğe bağlanır. Aynı ürün için yanlışlıkla iki kart açılmışsa birleştirme yetkili kişiye açıktır, bağlantılar kalan karta taşınır ve işlem iz kaydına geçer.

## Form ve iş kuralları: başlangıç önerim

Aşağıdaki kurallar başlangıç önerimdir, ölçülmüş bir doğru değildir. İlk ayın kayıtlarıyla ayarlanır. Tek bir kaydın kendi alanlarına konan kurallar (zorunlu alan, uyumsuz değer) [kurallı veri giriş formunun](https://oguzerol.com/kuralli-veri-giris-formu/) konusu. Buradakiler birden çok kaydın birbirine bağlanma kuralları.

| kural | önerim | neyi önler |
| --- | --- | --- |
| Tekillik | Aynı proje ve ürün ikinci kez eklenemez, adet artırılır. Aynı ürün iki alt montajda ayrı izlenecekse alt montaj alanı tekilliğe girer | Mükerrer satırın proje sayısını şişirmesi |
| Seçim kaynağı | Ürün yalnız listeden seçilir. Listede olmayan ürün için ayrı talep açılır, kartı satın alma ya da mühendislik açar | Serbest metinle yazılan “S 210” |
| Pasif ürün | Yeni bağlantıda seçilemez, eski bağlantılarda görünür | Üretimden kalkmış modelin yeni projeye girmesi |
| Gönderimde yeniden kontrol | Form açıkken ürün pasife alındıysa gönderim sırasında yeniden kontrol edilir | Ekranda bir kez görünmüş ürünün hep seçilebilir sanılması |
| Adet ve birim | Adet bağlantının alanı, birim ürün kartından gelir. Sıfır ve negatif adet girilmez | “(x2)” gibi metin içinde kalan adet |
| Uyarılı ürün | İstenirse kurulur: kalite müdürü ürüne uyarı koyar, ürünü yeni projeye ekleyen kişi uyarıyı görüp onaylar | Bildirimden sonra S-210’un sessizce yeni projeye eklenmesi |

## Kim ne yapar, iz kaydı nasıl tutulur?

Önerdiğim temel kural: teslim edilmiş bir projedeki değişikliği, değişikliği yapan kişi onaylamaz. Roller şöyle:

- **Proje mühendisi:** kendi projelerine ürün ve kişi bağlar, çıkarır. Teslim edilmiş projede değişiklik ister.
- **Proje müdürü:** kendi projelerindeki değişiklik isteklerini onaylar. Kendi yaptığı değişikliği kalite müdürü onaylar.
- **Satın alma:** ürün kartını açar, günceller, pasife alır. Bütün projelerdeki kullanımı görür ama bağlantı ekleyip çıkaramaz.
- **Kalite müdürü:** kullanım raporunu ve saha listesini çıkarır, ürün kartı birleştirmeyi onaylar. Uyarılı ürün kuralı kurulursa uyarıyı o koyar.
- **Servis ve devreye alma ekibi:** yalnız atandığı projelerin listesini görür, sahada yapılan güncellemeyi bağlantı satırına işler.
- **Yönetim ve denetçi:** her şeyi görür, hiçbir şeyi değiştiremez.

Herkesin kendi hesabıyla girmesini öneririm. Onay kuralı ancak ayrı hesaplarla anlam taşır.

**Önerdiğim iz kaydı**, her değişikliğin uygulama üzerinden silinmeyen bir satırıdır: kim, ne zaman, hangi kayıt, eski ve yeni değer, gerekçe. Örnekten iki satır:

- **PJ-19, eski dosyadan taşıma.** Eski dosyada S-210 yalnız E sütununda yazılıydı. Taşımada proje mühendisi bağlantı satırını 1 adetle açtı, gerekçeye “eski dosya, Ek ürünler sütunu” yazdı. Teslim edilmiş bir proje olduğu için proje müdürü onayladı. PJ-19 saha listesine bu onaydan sonra düştü.
- **PJ-11, aynı hafta.** Servis mühendisi 4 sürücünün güncellendiğini bağlantı satırına işledi. Kalite müdürünün saha listesinde PJ-11 “tamamlandı” olarak düştü.

Merkez raporu örneğin şu üç soruya cevap verecek biçimde kurulabilir: hangi ürün hangi projelerde ve kaç adet, sahada hâlâ güncellenmemiş olan hangisi, hangi değişiklik onay bekliyor. Kayıtların tamamı Excel ya da CSV olarak alınır.

## Yapay zekâ ne yapar, nerede durur?

Yapay zekâ bu formda öneri yapar, karar vermez. Tekillik, silme kuralı ve sayımlar uygulamanın kendi kuralıdır. Onayı insan verir. Üç yerde işe yarayabilir:

1. **Eski virgüllü kayıtları taşırken yazım eşleme.** Model “S210”, “S 210” ve “S–210” yazımlarını S-210 koduna eşlemeyi önerebilir, “S-2100”ü ayrı tutar, emin olmadığını istisna listesine koyar. Eşlemeyi bir kişi satır satır onaylar; benzer görünen iki kodu model kendi başına birleştirmez.
2. **Teklif belgesinden kalem çıkarma.** Kurulursa, proje mühendisi teklifin PDF’ini yükler, model kalemleri ürün koduna eşleyip bağlantı taslağı hazırlar. Taslak, mühendis onaylamadan kayda girmez.
3. **Soruyla rapor.** Kurulursa, kalite müdürü “S-210 hangi teslim edilmiş projelerde var” diye yazar, model bunu uygulamanın kendi sorgusuna çevirir. Sayıyı sorgu verir, model değil.

Modele hiçbir satır yetki filtresinden geçmeden gitmez. Model yalnız soran kişinin görebildiği projeleri ve adları anar.

**Kişi bağlantıları kişisel veridir.** Proje–kişi tablosu çalışanların hangi müşteride, hangi rolde çalıştığını gösterir. Önerim, modele kişi adı yerine kod göndermek. Kişisel veri taşıyan bir kaydı yurt dışında çalışan bir yapay zekâ servisine göndermek KVKK’nın 9. maddesine girer. Madde [7499 sayılı Kanun’un 34. maddesiyle](https://www.resmigazete.gov.tr/eskiler/2024/03/20240312-1.htm) 1 Haziran 2024’ten itibaren yeniden düzenlendi; güncel hâlini 15 Ekim 2026’da mevzuat.gov.tr’deki metinden okudum. Hangi alanın modele gittiğini ilk adımın çıktısında yazılı veririm, değerlendirmeyi hukuk danışmanınız yapar.

## Excel, form servisi ya da mevcut sisteminiz ne zaman yeter?

Şu durumlarda ayrı uygulama yaptırmanızı önermem:

- Seçimler yalnız etiket. Kimse “kaç projede var” diye saymıyor, seçime adet ya da tarih eklenmiyor. Google E-Tablolar’ın chip çoklu seçimi masa başında bunu karşılar.
- Kaydı tek kişi giriyor ve yukarıdaki üç sayfalık düzeni disiplinle tutabiliyor. Silme ve mükerrer kontrolünü o kişi yapıyor.
- ERP’nizde proje ya da sipariş bazında malzeme listesi zaten var ve ekibiniz onu kullanıyor. Önce onun raporlarını sonuna kadar kullanın.
- Kod yazmadan uygulama kurulan bir araç ofis paketinizde zaten varsa önce kendi lisansınızla deneyin. Üç ölçüte bakın: bağlantı satırına kendi alanını (adet, rol) ekleyebiliyor musunuz, kullanılan bir kaydın silinmesini engelleyebiliyor musunuz, her rolün yalnız kendi projelerini görmesini sağlayabiliyor musunuz. Üçü de oluyorsa özel uygulamaya gerek yoktur.

Form servisi kullanıyorsanız, birden çok seçenekli sorunun cevabının kendi dışa aktarımınızda nasıl durduğuna bakın. Seçimler tek hücrede birleşik metinse bu sayfadaki sayım sorunu sizde de var.

## Nasıl başlanır, veri ve kod kimin?

İlk adımda proje, servis ya da teklif tablonuza bakarız: seçimler nerede tek hücrede, nerede yan sütunda, aynı ürün kaç farklı yazımla geçiyor. Çıktısında kayıt türlerini, bağlantıların hangi alanları taşıyacağını, silme kurallarını, rol listesini ve ilk sürümün kapsamını yazılı veririm. Ekranlar ihtiyaca göre kurulur, hangilerinin ilk sürüme gireceğini bu aşamada yazılı belirleriz. İlk sürüm tek ilişkiyle (proje–ürün) başlar; kişi bağlantıları, uyarılı ürün ve yapay zekâ önerileri ihtiyaca göre sonra eklenir.

Uygulama şirketiniz adına açılabilen bir sunucuda (VPS) çalışır. Kayıtlar sizindir, tamamını istediğiniz zaman Excel ya da CSV olarak alırsınız. Kullanıcı başına lisans yok, maliyet sunucunun aylık ücreti ve bakımdan oluşur, küçük ve orta ölçekli bir ekipte kullanıcı eklemek bunu değiştirmez. Kaynak kodun tamamı sizin erişiminizdeki bir depoda, çalıştırma talimatı, bağımlılık listesi ve bilinen sınırlar listesiyle durur. Kişi bağlantıları kişisel veri taşıdığı için erişim, güvenlik, barındırma ve bakım gereksinimlerini başlangıçta ayrıca değerlendiririm.

**ERP değişirse ne olur?** Ürün listesi ERP’den alınıyorsa yalnız bu aktarım yeniden kurulur, projeler ve bağlantılar sizde kalır; kapsamını önceden yazılı paylaşırım.

Proje ya da teklif tablonuzdan birkaç satırı, müşteri ve kişi adlarını maskeleyerek [iletişim sayfasından](https://oguzerol.com/iletisim/) gönderin. İlk görüşmede aynı ürünün kaç farklı yazımla geçtiğine ve “kaç projede var” sorusunun bugün kaç dakikada cevaplandığına bakarız.

## Sıkça Sorulan Sorular

### Tedarikçi bir ürünün kodunu değiştirirse eski projeler ne olur?

Bağlantı ürün koduna değil, değişmeyen iç kimliğe bağlıdır. Kod alanı güncellenir, eski projeler aynı karta bağlı kalır. Yeni kod gerçekten başka bir ürünse yeni kart açılır, eskisi pasife alınır ve iki kart arasına “yerine geçen” bağlantısı konabilir. Böylece raporda iki kod birlikte de ayrı ayrı da sayılabilir.

### Aynı ürün bir projede iki farklı alt montajda kullanılıyorsa nasıl kaydedilir?

Bağlantı satırına alt montaj alanı eklenir, tekillik proje, ürün ve alt montaj üçlüsüne göre kurulur. Projedeki toplam adet iki satırın toplamıdır. Uygulamada “kaç projede var” sayımı farklı proje numarası üzerinden yapılacak biçimde kurulabilir, bunu ilk adımda yazılı belirleriz. Yukarıdaki Excel düzeninde ise ÇOKEĞERSAY satır saydığı için o proje iki kez sayılır; alt montaj kullanıyorsanız bunu Excel’de ayrıca düzeltmeniz gerekir.

### Teklifte kullanılan kalemler sonradan projeye aktarılabilir mi?

İhtiyaca göre kurulabilir. Örneğin teklif kabul edilince kalemler proje bağlantılarına taslak olarak kopyalanır, proje mühendisi onaylar. Fiyat ve iskonto teklifte kalır, projeye ürün ve adet geçer. Teklif sonradan revize edilirse projedeki bağlantılar kendiliğinden değişmez, fark listesi çıkarılabilir. Kapsamı ilk adımda yazılı belirleriz.

[Başa dön ↑](https://oguzerol.com/coklu-secimli-iliskili-kayit-formu/#icerik)

## Bunları da okumak ister misiniz?

[Excel Çoklu Seçim Açılır Liste: VBA Kodu ve AlternatiflerExcel açılır listede birden fazla seçim: doğrulama neden tek değer seçtirir, kopyalanabilir VBA kodu, makrosuz ayrı satır yöntemi ve karar tablosu.](https://oguzerol.com/excel-coklu-secim-acilir-liste/)[Google Sheets Çoklu Seçim: Açılır Listede Birden Fazla DeğerGoogle Sheets çoklu seçimi chip açılır listede açın. Mobil kullanım sınırını, tek hücrede etiketleme ile ayrı ilişkili kayıt arasındaki farkı görün.](https://oguzerol.com/google-sheets-coklu-secim/)[Excel ve Google Sheets İçin Bağlı Açılır Listeli Özel FormlarExcel ve Google Sheets'teki bağlı açılır listeleri; ürün, model, stok ve kullanıcı yetkisini birlikte kontrol eden özel web formuna taşıyalım. Örneği inceleyin.](https://oguzerol.com/bagli-acilir-listeli-ozel-formlar/)

[Tüm yazılara göz atın →](https://oguzerol.com/yazilarim/)

NE İSTEYEBİLİRSİNİZ

## Nasıl çalışıyorum?
Çalışma saati paketleri

WhatsApp’tan ya da telefonda işinizden ve ihtiyacınızdan bahsedin; **5 ile 40 saat arasında bir çalışma paketinde** anlaşalım, ben gerekenleri yapmaya başlayayım. Aldığınız şey bir takvim aralığı değil, doğrudan sizin işinize harcanacak net mesai. 40 saati üç gün aralıksız çalışarak da kullanabiliriz, bilerek zamana yayıp bir yılda da bitirebiliriz — işin gerektirdiği neyse o. İşin ne kadar süreceğini tahmin etmeye değil, işi yapmaya vakit harcarım; harcadığım her saatin işinizde kalıcı bir karşılığı olur. Faydalı olduğunu düşündüğünüz sürece bu şekilde devam ederiz.

ÇALIŞMA BLOKLARI

## Neden aylık değil?
40 saat 1 hafta mı oluyor?

Aylık sabit ücrette iki taraf da yanlış yere bakar: siz sabit gidere, karşı taraf kaç tane daha böyle sözleşme bağlayabileceğine. Saat üzerinden çalışınca ikimizin de baktığı yer aynı olur — yapılan işin gerçek değeri. "Toplamda ne kadar tutar?" sorusunun peşinen net bir cevabı olmaması bu modelin doğal maliyeti, farkındayım. Ama sonuç üretmeyen bir yapıya aylarca sabit ücret ödemek yerine yalnızca işinize ayrılan nitelikli zamanı ödersiniz, o zamanın nereye gittiğini de baştan sona görürsünüz. Müşterilerimin benimle tekrar tekrar çalışmasının sebebi bu.

5saat10.000₺ + KDVsaat başı 2.000₺[Bu bloğu seç](https://wa.me/905496546489?text=Merhaba%2C%205%20saatlik%20%C3%A7al%C4%B1%C5%9Fma%20blo%C4%9Fu%20hakk%C4%B1nda%20bilgi%20almak%20istiyorum.)

10saat15.000₺ + KDVsaat başı 1.500₺[Bu bloğu seç](https://wa.me/905496546489?text=Merhaba%2C%2010%20saatlik%20%C3%A7al%C4%B1%C5%9Fma%20blo%C4%9Fu%20hakk%C4%B1nda%20bilgi%20almak%20istiyorum.)

20saat24.000₺ + KDVsaat başı 1.200₺[Bu bloğu seç](https://wa.me/905496546489?text=Merhaba%2C%2020%20saatlik%20%C3%A7al%C4%B1%C5%9Fma%20blo%C4%9Fu%20hakk%C4%B1nda%20bilgi%20almak%20istiyorum.)

40saat40.000₺ + KDVsaat başı 1.000₺[Bu bloğu seç](https://wa.me/905496546489?text=Merhaba%2C%2040%20saatlik%20%C3%A7al%C4%B1%C5%9Fma%20blo%C4%9Fu%20hakk%C4%B1nda%20bilgi%20almak%20istiyorum.)