none
Excel Bir satırdaki veriye göre diğer satırda işlem gerçekleştirme

    Soru

  • Dostlar merhaba aşağıdaki resimdeki gibi bir excel tablom var. yapmak istediğim üyelik süresi bölümündeki güne göre rütbe bölümünde bir değer belirtmek. Yani örneğin üyelik süresi bölümünde 7 ile 14 arasında bir değer varsa rütbe bölümünde onbaşı yazsın. örneğin 14-21 arasındaysa çavuş yazsın gibi. Bunu nasıl yapabilirim?

    18 Mart 2019 Pazartesi 20:30

Tüm Yanıtlar

  • Bir üye sınıfı oluşturun.

        public class Uye
        {
            public string Ad { get; set; }
            public DateTime Tarih { get; set; }
            public int Sure => (DateTime.Now - Tarih).Days;
            public string Rutbe
            {
                get
                {
                    if (Sure < 7)
                        return "Er";
                    else if (Sure < 15)
                        return "Onbaşı";
                    else if (Sure < 22)
                        return "Çavuş";
                    else
                        return "BaşÇavuş";
                }
            }
            public DateTime RutbeDegisim { get; set; }
            public string Uyari { get; set; }
        }
    

    Böylece ilgili alanları otomatik olarak hesaplatabilirsiniz. Kullanımı,

    private void Button1_Click(object sender, EventArgs e)
    {
        Uyeler = new List<Uye>();
        using (OleDbConnection con = new OleDbConnection($"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Kitap1.xlsx;Extended Properties=\"Excel 12.0; HDR=No;\""))
        {
            using (OleDbCommand com = new OleDbCommand("SELECT * FROM [Sayfa1$]", con))
            {
                con.Open();
                using (OleDbDataReader rdr = com.ExecuteReader())
                {
                    while (rdr.Read())
                    {
                        DateTime date;
                        if (DateTime.TryParse($"{rdr[1]}", out date))
                        {
                            Uyeler.Add(new Uye()
                            {
                                Ad = $"{rdr[0]}",
                                Tarih = date,
                                Uyari = $"{rdr[5]}"
                            });
                        }
                    }
                }
            }
        }
        dataGridView1.DataSource = Uyeler;
    }

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    18 Mart 2019 Pazartesi 21:38
  • Murat hocam cevabınız için teşekkür ederim. Yalnız bir ihtiyaç için bu tabloyu yapmam gerekiyor. Yani excel kullanımına hakim değilim ve bu kodları nereye yazacağımı bilmiyorum. Acaba bu verdiğiniz yöntem access için mi? Access içinse de sorun değil, accessden de yapabilirim
    • Düzenleyen Bay Coder 19 Mart 2019 Salı 07:41
    19 Mart 2019 Salı 07:39
  • Bu kodlar ile excel tablosundan verileri okuyabilir ve

    DataGridView kontrolü içerisinde görüntüleyebilirsiniz.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    19 Mart 2019 Salı 08:51
  • Rütbeleri ayrı bir yere yazın sırayla.

    Excel'deki Vlookup komutunu inceleyin.

    Son parametresi olan Boolean veri tipi kesin eşleşme durumunda false yani 0 ister. Ama aralık belirtmek isterseniz true yani 1 girersiniz.

    Kısacası
    Gün   Rutbe

    0         Er

    14       Çavuş
    21       Başçavus
    36       Kıdemli Başçavuş
    45       Kıdemli kademeli Başçavuş

    gibi bir tablo hazırlayıp Vlookup ile son parametreyi true girerek bu işlemi yapabilirsiniz. Vlookup (Düşeyara) komutu excel'de son parametrenin false veya true olmasına göre tam eşleşme veya aralık olarak arama yapar.


    pgnchess.com

    dergikapaklari.com



    22 Mart 2019 Cuma 21:43