Excel - Her benzersiz tanımlayıcı için tek bir değer döndüren formül


0

My Excel table

Neyim var:
Verilerim için benzersiz bir zaman tanımlayıcı işlevi gören yıl artı hafta sayısını içeren bir sütun ve bir değer içeren bir sütun. Satır miktarı değişir. Gördüğünüz gibi, Değer aynı YEAR + WEEKNUM değerine sahip her satır için aynıdır.

Neye ihtiyacım var:
Her YEAR + WEEKNUM için tek bir değer döndürmek için - ve bu değerlerin C sütununda görünmesi gerekir. Sadece benzersiz değerleri filtreleyemem, çünkü farklı haftalar bazen aynı değerlere sahiptir.


Özet bir masanın tipik bir kullanımı gibi görünüyor, çoktan denediniz mi?
Máté Juhász

2
Süper Kullanana Hoşgeldiniz. Yeni üyeler genellikle bu işi yapacağımız bir servis sitesi için yanlış yaparlar. Bu bir Soru ve Cevap Bir şey denendikten ve takılıp kaldıktan sonra özel soruların sorulduğu bir topluluktur. Lütfen komut dosyaları, kodlar veya formüller dahil olmak üzere şimdiye kadar ne denedim, ayrıntılarını ekleyin ve size yardımcı olmaya çalışacağız. Soru sorma hakkında daha fazla bilgiye ihtiyacınız varsa, kontrol edin. Nasıl sorulur içinde yardım Merkezi .
CharlieRB

Mate - Evet, bir pivot tablo benim için çalıştı, ancak bir formül kullanarak aynı şeyi başarmanın bir yolunu bilmek isterdim. CharlieRB - Ne yazık ki, böyle bir formül oluşturmak için nasıl bir başlangıç ​​noktası bulacağımı bile bilmiyorum, benzersiz değerler veren formüllerle ilgili çok sayıda eğitim görmüştüm, ancak gereksinimlerime uyacak bir tane değil.
Jacob S.

Yanıtlar:


2

Ve burada VBA olmayan eşdeğerdir. İçinde D2 girmek:

2

İçinde D3 girmek:

=IF(A3=A2,"",1+MAX($D$1:D2))

ve aşağı kopyalayın. Daha sonra C2- girmek:

=IFERROR(INDEX(B:B,MATCH(ROW(),D:D,0)),"")

ve kopyalayın:

enter image description here

Not:

Bu yaklaşım dizi formüllerini veya geçici işlevleri kullanmaz. Bu sütun gerçeğinden yararlanır bir 'nin verileri gruplar halinde düzenlenmiştir.


1

Öldürmek için birkaç dakikam vardı ve VBa çözümü önerdim. VBa'yı istemedin ama şu anda başka bir çözüm olmadığı için yeterli olabilir. Bir pivot tablonun @MateJuhasz çözümünün en iyisi olduğundan şüpheleniyorum ama bunun bir çalışma sayfası formülü olarak sınıflandırılıp sınıflandırılmadığından emin değilim (sanmıyorum)

Sub WalkThePlank()

Dim startRow As Integer
startRow = 2

Dim resultRow As Integer
resultRow = 1

Dim resultCol As String
resultCol = "C"

Dim prev As String
prev = ""

Do While Range("A" & startRow).Value <> ""
    Dim v As String
    v = Range("A" & startRow).Value

    If (prev <> v) Then
        resultRow = resultRow + 1
        prev = v
    End If

    Range("C" & resultRow).Value = Range("B" & startRow).Value

    startRow = startRow + 1
Loop

End Sub

enter image description here

VBa'da geri alma seçeneği bulunmadığını unutmayın, bu nedenle ilk önce yedekleyin

VBA'yı MS Office'e nasıl eklerim?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.