Düzensiz gruplanmış liste halindeki veriyi düzenlemek

Katılım
18 Temmuz 2013
Mesajlar
72
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
12-03-2021
Merhabalar.

Basit düzeyde satırlardan ve sütunlardan oluşan bir liste var. Üniversite kontenjanları listesi. Tablo olarak oluşturulmadığı için sağlıklı bir filtreleme imkanı sunmuyor. Bunu derlemek istedim.

Listede, bölümler, üniversitelerin altında, fakülteler olarak listelenmiş vaziyette. Üniversite ve fakülteleri otomatik olarak, bölümlerin yanına eklemenin bir kısa yolu var mıdır?

Üniversite ve fakülteleri başarılı bir şekilde ayırmak mümkün olsa, daha sonrasında vakıf, eğitim dili, ili gibi verileri "verileri sütunlara böl" komutu ile ayırıp daha sonrasında biraz zaman alsa da derlemek mümkün olabilir: Hepsi "(" ve ")" işaretleri içinde yazıldığı için bu işlem rahatça yapılabilir diye umuyorum.

Ham veriyi derledikten sonra da vakit buldukça istatistiksel çalışmalar yapmayı planlıyorum. Eğer başarabilirsem de tercih robotu tarzında bir şey olarak yayınlamak istiyorum. Bildiğim kadarıyla, üniversite tercihleri için kapsamlı bir filtreleme ile bölümleri sunan bir kaynak yok.

Sadece 4 yıllık bölümler listesi, 13.000'den fazla satır içeriyor. Bunu 2 yıllık bölümler için de yapmak istiyorum.

Umarım başlık anlatmak istediğim şeye uygundur, eğer değilse lütfen öneride bulunun yeni başlık için. Forumda arama yaptım ama doğru şey olmadığı için de olabilir, istediğim şeyi bulamadım: Varsa kusuruma bakmayın.

Örnek dosyaya ait linki aşağıya ekledim, sanırım uygundur.

Vakit ayırdığınız için teşekkür ederim.

tablo4_18072019.xls - 7.5 MB
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,182
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Doğru anladıysam eki deneyin.
İyi çalışmalar.

Link:

Not: Dosya boyutu yüksek olduğu için siteye yüklenemedi.
 
Katılım
18 Temmuz 2013
Mesajlar
72
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
12-03-2021
Aslında olan:
Sub analiz()
Application.ScreenUpdating = False
On Error Resume Next
Set s1 = ThisWorkbook.Worksheets("sayfa")
Set s2 = ThisWorkbook.Worksheets("sabit")

s1.Range("x3:z65536").ClearContents
For i = 3 To s1.Range("c65536").End(xlUp).Row
If InStr(Cells(i, "c"), "Devlet") > 0 Then s1.Cells(i, "y") = "Devlet"
If InStr(Cells(i, "c"), "Vakıf") > 0 Then s1.Cells(i, "y") = "Vakıf"
If InStr(Cells(i, "c"), "Fakültesi") > 0 Then s1.Cells(i, "z") = Cells(i, "c")

For k = 2 To 82
If InStr(Cells(i, "c"), s2.Cells(k, 1)) > 0 Then
s1.Cells(i, "x") = s2.Cells(k, 1)
End If
Next k
If s1.Cells(i, "x") = "" Then s1.Cells(i, "x") = s1.Cells(i - 1, "x")
If s1.Cells(i, "y") = "" And s1.Cells(i, "z") = "" Then s1.Cells(i, "z") = s1.Cells(i - 1, "z")
If s1.Cells(i, "y") = "" Then s1.Cells(i, "y") = s1.Cells(i - 1, "y")

Next i
Application.ScreenUpdating = True
MsgBox "İşlem TAMAM.", vbInformation
End Sub
Benim anladığım:
하위 analiz ()
신청 . 화면 업데이트 = False
오류 이력서 다음에
s1 =이 통합 문서를 설정하십시오. 워크 시트 ( "sayfa")
s2 =이 통합 문서를 설정하십시오. 워크 시트 ( "sabit")

s1. 범위 ( "x3 : z65536"). ClearContents
i = 3의 경우 s1. 범위 ( "c65536"). 끝 (xl Up). 열
In Str (셀 (i, "c"), "Devlet")> 0이면 s1.Cells (i, "y") = "Devlet"
InStr (Cells (i, "c"), "Vakıf")> 0이면 s1.Cells (i, "y") = "Vakıf"
InStr (Cells (i, "c"), "Fakültesi")> 0이면 s1입니다. 셀 (i, "z") = 셀 (i, "c")

k = 2에서 82의 경우
InStr (Cells (i, "c"), s2.Cells (k, 1))> 0이면
s1.Cells (i, "x") = s2. 셀 (k, 1)
끝 경우
다음 k
s1.Cells (i, "x") = ""이면 s1.Cells (i, "x") = s1.Cells (i-1, "x")
s1.Cells (i, "y") = ""그리고 s1.Cells (i, "z") = ""이면 s1.Cells (i, "z") = s1.Cells (i-1, "z ")
s1.Cells (i, "y") = ""이면 s1. 셀 (i, "y") = s1. 셀 (i-1, "y")

다음 나는
신청 . 화면 업데이트 = True
메시지 상자 "İşlem TAMAM.", vb 정보
엔드 서브
İlk olarak teşekkür ederim. Tarif etmek istediğim tam olarak buydu. Ancak mesela, "üniversite" sütununu yazmayı unutmuşum. Eğer müsaitseniz, nasıl yapıldığını tarif eder misiniz? Ben de üniversite sütununu eklemeyi deneyeyim. Veya bu makrolarda ne olarak geçer? Öğrenmek için soruyorum. Makro yazmadan yapabilir miydik bunu?
 
Katılım
18 Temmuz 2013
Mesajlar
72
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
12-03-2021

If InStr(Cells(i, "c"), "Üniversitesi") > 0 Then s1.Cells(i, "aa") = Cells(i, "c")

kod satırını ekledim. Üniversite isimlerinin olduğu satırda "aa" sütununda, üniversite ismini yazdı ancak bir sonraki üniversite ismine kadar olan aşağısında kalan boş hücreleri doldurmadı. Bunun için ne yapabilirim?

   
   
 
Üst