Aralığı tek sütuna dönüştürmek için Excel TOCOL işlevi

  • Bunu Paylaş
Michael Brown

TOCOL fonksiyonu ile bir dizi veya aralığı sütuna dönüştürmenin kolay bir yolu.

Verileri sütunlardan satırlara ve tersine çevirme özelliği Excel'de uzun süredir var. Ancak bir dizi hücreyi tek bir sütuna dönüştürmek zor bir işti. Şimdi, bu nihayet değişiyor. Microsoft, göz açıp kapayıncaya kadar diziden sütuna dönüşüm yapabilen TOCOL adlı yeni bir işlev tanıttı. Aşağıda, bu yeni işlevin kolayca çözebileceği görevlerin bir listesi bulunmaktadır.

    Excel TOCOL işlevi

    Excel'deki TOCOL işlevi, bir hücre dizisini veya aralığını tek bir sütuna dönüştürür.

    Fonksiyon üç argüman alır, ancak yalnızca ilki gereklidir.

    TOCOL(dizi, [ignore], [scan_by_column])

    Nerede?

    Dizi (gerekli) - sütuna dönüştürülecek bir dizi veya aralık.

    Görmezden gel (isteğe bağlı) - boşlukların ve/veya hataların göz ardı edilip edilmeyeceğini tanımlar. Bu değerlerden biri olabilir:

    • 0 veya atlanmış (varsayılan) - tüm değerleri koru
    • 1 - boşlukları yoksay
    • 2 - hataları görmezden gelin
    • 3 - boşlukları ve hataları göz ardı edin

    Scan_by_column (isteğe bağlı) - dizinin yatay mı yoksa dikey olarak mı taranacağını belirler:

    • FALSE veya atlanmış (varsayılan) - diziyi soldan sağa satır bazında tarar.
    • TRUE - diziyi yukarıdan aşağıya doğru sütuna göre tarar.

    İpuçları:

    • Bir diziyi tek bir satıra dönüştürmek için TOROW işlevini kullanın.
    • Sütundan diziye dönüşümün tersini yapmak için, sütuna göre sarmak üzere WRAPCOLS işlevini veya satıra göre sarmak üzere WRAPROWS işlevini kullanın.
    • Bir diziyi yataydan dikeye veya tam tersine dönüştürmek için, yani satırları sütunlara dönüştürmek için TRANSPOSE işlevini kullanın.

    TOCOL kullanılabilirliği

    TOCOL, Microsoft 365 için Excel (Windows ve Mac için) ve Web için Excel'de desteklenen yeni bir işlevdir.

    Aralığı sütuna dönüştürmek için temel TOCOL formülü

    TOCOL formülü en basit haliyle sadece bir argüman gerektirir - dizi Örneğin, 3 sütun ve 4 satırdan oluşan iki boyutlu bir diziyi tek bir sütuna yerleştirmek için formül şöyledir:

    =TOCOL(A2:C5)

    Formül yalnızca bir hücreye girilir (bu örnekte E2) ve aşağıdaki hücrelere otomatik olarak dökülür. Excel açısından, sonuç dökülme aralığı olarak adlandırılır.

    Bu formül nasıl çalışır?

    Teknik olarak, A2:C5 aralığı önce iki boyutlu bir diziye dönüştürülür. Lütfen noktalı virgülle ayrılmış satırlara ve virgülle ayrılmış sütunlara dikkat edin:

    {"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}

    TOCOL işlevi diziyi soldan sağa doğru tarar ve tek boyutlu dikey bir diziye dönüştürür:

    {"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}

    Sonuç E2 hücresine yerleştirilir ve buradan aşağıdaki hücrelere dökülür.

    Excel'de TOCOL işlevi nasıl kullanılır - formül örnekleri

    TOCOL işlevinin olanaklarını ve hangi görevleri kapsayabileceğini daha iyi anlamak için bazı formül örneklerine göz atalım.

    Boşlukları ve hataları yok sayarak diziyi sütuna dönüştürme

    Önceki örnekte fark etmiş olabileceğiniz gibi, varsayılan TOCOL formülü boş hücreler ve hatalar da dahil olmak üzere kaynak dizideki tüm değerleri tutar.

    Elde edilen dizide boş hücreler sıfırlarla temsil edilir, bu da özellikle orijinal dizide 0 değerleri varsa oldukça kafa karıştırıcı olabilir. boşlukları atla Bunun için 2. bağımsız değişkeni 1 olarak ayarlarsınız:

    =TOKOL(A2:C5, 1)

    için hataları görmezden gel 2. bağımsız değişkeni 2 olarak ayarlayın:

    =TOKOL(A2:C5, 2)

    İkisini de hariç tutmak için, boşluklar ve hatalar için 3 kullanın. görmezden gel Tartışma:

    =TOKOL(A2:C5, 3)

    Diziyi yatay veya dikey olarak tarama

    Varsayılan ile scan_by_column argümanı (FALSE veya atlanmış), TOCOL fonksiyonu diziyi satıra göre yatay olarak tarar. Değerleri sütuna göre işlemek için bu argümanı TRUE veya 1 olarak ayarlayın:

    =TOCOL(A2:C5, ,TRUE)

    Her iki durumda da, döndürülen dizilerin aynı boyutta olduğuna, ancak değerlerin farklı bir sırada düzenlendiğine dikkat edin.

    Birden fazla aralığı tek bir sütunda birleştirme

    Bitişik olmayan birkaç aralıkla uğraşıyorsanız, önce VSTACK işlevi yardımıyla aralıkları dikey olarak tek bir dizide birleştirebilir ve ardından birleştirilmiş diziyi bir sütuna dönüştürmek için TOCOL kullanabilirsiniz.

    İlk aralığın A2:C4 ve ikinci aralığın A8:C9 olduğunu varsayarsak, formül şu biçimi alır:

    =TOCOL(VSTACK(A2:C4, A8:C9))

    Bu formül varsayılan davranışı gösterir - birleştirilmiş dizileri aşağıdaki resimde E sütununda gösterildiği gibi soldan sağa yatay olarak okur.

    Değerleri dikey olarak yukarıdan aşağıya doğru okumak için TOCOL'un 3. bağımsız değişkenini TRUE olarak ayarlarsınız:

    =TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)

    Lütfen bu durumda formülün önce her iki dizinin A sütunundan, sonra B sütunundan değerleri döndürdüğüne dikkat edin. Bunun nedeni, TOCOL'ün orijinal ayrı aralıkları değil, tek bir yığılmış diziyi taramasıdır.

    İş mantığınız orijinal aralıkların dikey yerine yatay olarak istiflenmesini gerektiriyorsa, VSTACK yerine HSTACK işlevini kullanın.

    Sonraki her diziyi bir önceki dizinin sağına eklemek ve birleştirilmiş dizileri yatay olarak okumak için formül şöyledir:

    =TOCOL(HSTACK(A2:C4, A8:C10))

    Sonraki her diziyi bir önceki dizinin sağına eklemek ve birleştirilmiş dizileri dikey olarak taramak için formül şöyledir:

    =TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)

    Çok sütunlu bir aralıktan benzersiz değerleri ayıklama

    Excel UNIQUE işlevi, tek bir sütun veya satırdaki benzersiz değerleri kolayca bulabilir ve benzersiz satırlar döndürebilir, ancak çok sütunlu bir diziden benzersiz değerleri çıkaramaz. Çözüm, TOCOL işleviyle birlikte kullanmaktır.

    Örneğin, A2:C7 aralığındaki tüm farklı (belirgin) değerleri ayıklamak için formül şöyledir:

    =UNIQUE(TOCOL(A2:C7))

    Ayrıca, döndürülen diziyi alfabetik sıraya göre düzenlemek için yukarıdaki formülü SORT işlevine sarabilirsiniz:

    =SIRALA(BENZERSIZ(TOKOL(A2:C7))

    Excel 365 - 2010'da aralığı sütuna dönüştürme

    TOCOL işlevinin desteklenmediği Excel sürümlerinde, bir hücre aralığını bir sütuna dönüştürmenin birkaç alternatif yolu vardır. Bu çözümler oldukça zordur, ancak yine de işe yarar.

    Aralığı satır bazında okumak için:

    İNDEKS( aralık , QUOTIENT(ROW(A1)-1, COLUMNS( aralık ))+1, MOD(SATIR(A1)-1, SÜTUNLAR( aralık ))+1)

    Aralığı sütuna göre okumak için:

    İNDEKS( aralık , MOD(ROW(A1)-1, ROWS( aralık ))+1, BÖLÜM(SATIR(A1)-1, SATIRLAR( aralık ))+1)

    Örnek veri setimiz için formüller aşağıdaki gibidir:

    Menzili taramak için yatay olarak soldan sağa :

    =INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    Bu formül, 3. bağımsız değişken FALSE olarak ayarlanmış veya atlanmış TOCOL işlevine eşdeğerdir:

    =TOCOL(A2:C5)

    Menzili taramak için dikey olarak yukarıdan aşağıya :

    =INDEX($A$2:$C$5, MOD(ROW(A1)-1, ROWS($A$2:$C$5))+1, QUOTIENT(ROW(A1)-1, ROWS($A$2:$C$5))+1)

    Bu formül, 3. bağımsız değişkenin TRUE olarak ayarlandığı TOCOL işleviyle karşılaştırılabilir:

    =TOCOL(A2:C5, ,TRUE)

    TOCOL'un aksine, alternatif formüller sonuçların görünmesini istediğiniz her hücreye girilmelidir. Bizim durumumuzda, formüller E2 (satıra göre) ve G2 (sütuna göre) hücrelerine gider ve ardından 13. satıra kopyalanır.

    Formüller gerekenden daha fazla satıra kopyalanırsa, "fazladan" hücrelerde bir #REF! hatası görünecektir. Bunun olmasını önlemek için, formülleri IFERROR işlevine şu şekilde yerleştirebilirsiniz:

    =IFERROR(INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1), "")

    Formüllerin doğru şekilde kopyalanması için aralığı mutlak hücre referansları kullanarak kilitlediğimize dikkat edin ($A$2:$C$5). Bunun yerine, adlandırılmış bir aralık kullanabilirsiniz.

    Bu formüller nasıl çalışır?

    Aşağıda, hücreleri satıra göre düzenleyen ilk formülün ayrıntılı bir dökümü yer almaktadır:

    =INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    Buradaki fikir, aralıktaki göreli satır ve sütun numaralarına göre belirli bir hücrenin değerini döndürmek için INDEX işlevini kullanmaktır.

    Bu sıra numarası bu kombinasyon ile hesaplanır:

    QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1

    QUOTIENT, bir bölümün tamsayı kısmını döndürür.

    İçin pay formülünün girildiği ilk hücre olan E2'de 0'dan, formülün girildiği son hücre olan E13'te 11'e kadar bir seri numarası döndüren SATIR(A1)-1'i kullanırsınız.

    Bu payda brough by COLUMNS($A$2:$C$5)) sabittir ve aralığınızdaki sütun sayısına eşittir (bizim durumumuzda 3).

    Şimdi, ilk 3 hücre (E2:E4) için QUOTIENT'in sonucunu kontrol ederseniz, 0'a eşit olduğunu göreceksiniz (çünkü bölmenin tamsayı kısmı sıfırdır). 1 eklendiğinde satır numarası 1 olur.

    Sonraki 3 hücre için (E5:E5), QUOTIENT 1 döndürür ve +1 işlemi 2. satır numarasını verir ve bu böyle devam eder.

    Başka bir deyişle, formülün bu kısmı 1,1,1,2,2,2,3,3,4,4,4,... gibi tekrar eden bir sayı dizisi oluşturur. Her sayı, aralığınızdaki sütun sayısı kadar tekrar eder.

    Hesaplamak için sütun numarası MOD işlevini kullanarak uygun bir sayı dizisi oluşturursunuz:

    MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1

    Aralığımızda (A2:C5) 3 sütun olduğundan, sıra 1,2,3,1,2,3,... şeklinde olmalıdır.

    MOD fonksiyonu bölme işleminden sonra kalanı döndürür.

    E2'de, MOD(SATIR(A1)-1, SÜTUNLAR($A$2:$C$5))+1)

    olur

    MOD(1-1, 3)+1)

    ve 1 döndürür.

    E3 içinde, MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)

    olur

    MOD(2-1, 3)+1)

    ve 2 döndürür.

    Satır ve sütun numaraları belirlendiğinde, INDEX gerekli değeri getirirken sorun yaşamaz.

    E2'de, INDEX($A$2:$C$5, 1, 1) başvurulan aralığın 1. satırından ve 1. sütunundan, yani A2 hücresinden değer döndürür.

    E3'te, INDEX($A$2:$C$5, 1, 2) 1. satır ve 2. sütundaki, yani B2 hücresindeki değeri döndürür.

    Ve bunun gibi şeyler.

    Aralığı sütuna göre tarayan ikinci formül de benzer şekilde çalışır. Aradaki fark, satır numarasını almak için MOD ve sütun numarasını almak için QUOTIENT kullanmasıdır.

    TOCOL işlevi çalışmıyor

    TOCOL işlevi bir hata veriyorsa, büyük olasılıkla bu nedenlerden biri olabilir:

    TOCOL Excel'inizde desteklenmiyor

    ADI? hatası aldığınızda, kontrol etmeniz gereken ilk şey işlevin adının doğru yazımıdır. Ad doğruysa ancak hata devam ediyorsa, işlev Excel sürümünüzde mevcut değildir. Bu durumda, bir TOCOL alternatifi kullanmayı düşünün.

    Dizi çok büyük

    SAYI hatası, dizinin bir sütuna sığamayacağını gösterir. Tipik bir durum, tüm sütunlara veya satırlara başvurduğunuz zamandır.

    Yeterli sayıda boş hücre yok

    SPILL hatası oluştuğunda, formülün girildiği sütunda sonuçlarla doldurulacak kadar boş hücre olup olmadığını kontrol edin. Hücreler görsel olarak boşsa, içlerinde boşluk ve diğer yazdırılamayan karakterler olmadığından emin olun. Daha fazla bilgi için Excel'de #SPILL hatasını düzeltme bölümüne bakın.

    Excel 365'teki TOCOL işlevini ve önceki sürümlerdeki alternatif çözümleri 2 boyutlu bir diziyi tek bir sütuna dönüştürmek için bu şekilde kullanabilirsiniz. Okuduğunuz için teşekkür ediyor ve gelecek hafta blogumuzda görüşmeyi umuyorum!

    Alıştırma çalışma kitabı

    Excel TOCOL işlevi - formül örnekleri (.xlsx dosyası)

    Michael Brown, yazılım araçlarını kullanarak karmaşık süreçleri basitleştirme tutkusuna sahip, kendini adamış bir teknoloji meraklısıdır. Teknoloji endüstrisinde on yılı aşkın deneyimiyle Microsoft Excel ve Outlook'un yanı sıra Google E-Tablolar ve Dokümanlar'daki becerilerini geliştirdi. Michael'ın blogu, bilgisini ve uzmanlığını başkalarıyla paylaşmaya, üretkenliği ve verimliliği artırmaya yönelik takip etmesi kolay ipuçları ve eğitimler sağlamaya adamıştır. İster deneyimli bir profesyonel, ister yeni başlayan olun, Michael'ın blogu, bu temel yazılım araçlarından en iyi şekilde yararlanmak için değerli bilgiler ve pratik tavsiyeler sunar.