Google e-tablosu için aynı sütunda değer yineleniyorsa hücreyi nasıl vurgulayabilirim?


Yanıtlar:


474

Bunu dene:

  1. Tüm sütunu seçin
  2. tıklayın Biçimi
  3. Koşullu biçimlendirme'yi tıklayın
  4. Başka bir kural ekle'yi tıklayın (veya mevcut / varsayılan kuralı düzenleyin)
  5. Set halinde Biçim hücreleri için:Custom formula is
  6. Değeri: olarak ayarlayın =countif(A:A,A1)>1(veya Aseçtiğiniz sütunda değiştirin )
  7. Biçimlendirme stilini ayarlayın.
  8. Aralığın sütununuz için geçerli olduğundan emin olun (örn A1:A100.).
  9. Bitti'yi tıklayın

A1: A100 hücrelerinde yazılan her şey kontrol edilecek ve bir kopya varsa (birden fazla ortaya çıkarsa) renklendirilecektir.

,Ondalık ayırıcı olarak virgül ( ) kullanan yerel ayarlarda , bağımsız değişken ayırıcı büyük olasılıkla noktalı virgül ( ;) olur. Yani, şunu deneyin: =countif(A:A;A1)>1yerine.

Birden çok sütun için kullanın countifs.


50
Yeni Google E-Tablolar'dan itibaren çok sütunlu COUNTIFS sürümünü kullanabilirsiniz. =COUNTIFS(A:A; A1; B:B; B1)>1
Kopyalar

6
bitiş ;benim için "geçersiz formül" hatasıyla sonuçlanır. Sadece onu kaldırmak hile yaptı. Ayrıca dikkatli olun: öğesinin 2. bağımsız değişkeni olarak belirttiğiniz countifhücre, seçtiğiniz aralığın ilk hücresi olmalıdır.
edelans

11
İşe yarıyor. Ama neden? A1'in denklem için bir kriter olduğunu varsayarsak, bu formül aralıktaki tüm hücreleri A1 ile karşılaştırmaz mı?
mafonya

9
@mafonya, özel formül, ilk hücreye uygulandığında okunması gereken genel bir formüldür. Tüm referanslar seçilen aralıktaki her bir hücre için uyarlanacaktır. Örneğin, B2 hücresini kontrol ederken formül dahili olarak olacaktır =countif(B:B,B2)>1. Bu, mutlak ve bağıl hücre referanslarını kullanırken oldukça gelişmiş bir biçimlendirme yapmanıza izin verir.
asoundmove

14
Bir yan not olarak, sütunun tamamına uygulamak istiyorsanız, = countif (A: A, A: A)> 1 formülünü kullanabilirsiniz. Bu, yalnızca A1 hücresine uygulanmayacağı, ancak A4 ve A8 aynı ise (tekrar). Şimdi hem A4 hem de A8 biçimlendirilecek.
BBking

68

Zolley'nin cevabı soru için mükemmel bir şekilde doğru olsa da , burada herhangi bir aralık için daha genel bir çözüm ve açıklama:

    =COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1

Bu örnekte aralığı kullanacağımı lütfen unutmayın A1:C50. İlk parametre ( $A$1:$C$50), kopyaları vurgulamak istediğiniz aralıkla değiştirilmelidir!


kopyaları vurgulamak için:

  1. Yinelenen işaretlemenin istendiği tüm aralığı seçin.
  2. Menüde: Format>Conditional formatting...
  3. Altında Apply to range , kuralın uygulanacağı aralığı seçin.
  4. In Format cells ifseçinCustom formula is açılır üzerinde.
  5. Metin kutusuna aralığı (3) adımına uyacak şekilde ayarlayarak verilen formülü ekleyin.

Neden çalışıyor?

COUNTIF(range, criterion), Her hücreyi karşılaştırır rangeiçincriterion formüller benzer işlenir. Hiçbir özel işleç sağlanmazsa, aralıktaki her hücreyi verilen hücre ile karşılaştıracak ve kuralla eşleştiği belirlenen hücre sayısını döndürecektir (bu durumda karşılaştırma). Sabit bir aralık kullanıyoruz ($ işaretli) kullanıyoruz, böylece her zaman tüm aralığı görüyoruz.

İkinci blok, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))geçerli hücrenin içeriğini döndürür. Bu hücrenin içine yerleştirildiyse, dokümanlar dairesel bağımlılık hakkında ağlamış olacaklardı, ancak bu durumda formül, değiştirilmeden hücrenin içindeymiş gibi değerlendirilir.

ROW()ve sırasıyla verilen hücrenin COLUMN()satır numarasını ve sütun numarasını döndürür . Herhangi bir parametre sağlanmazsa, geçerli hücre döndürülür (bu 1 tabanlıdır, örneğin, B33 için ROW()ve 2 içinCOLUMN() ).

Sonra: ADDRESS(row, column, [absolute_relative_mode])sayısal satırı ve sütunu bir hücre referansına çevirmek için kullanırız (örneğin B3. Hücrenin bağlamı içindeyken, adres VEYA içeriği olduğunu bilmiyoruz ve karşılaştırmak için içeriğe ihtiyacımız var). Üçüncü parametre biçimlendirmeye özen gösterir 4ve biçimlendirme INDIRECT()beğenilerini döndürür .

INDIRECT(), bir hücre başvurusu alır ve içeriğini döndürür. Bu durumda, geçerli hücrenin içeriği. Sonra başlangıca geri dönelim,COUNTIF() , aralıktaki her hücreyi kendimize karşı test edecek ve sayıyı geri getirecektir.

Son adım, mantıksal bir ifade yaparak, bizim formül boolean dönüş yapmaktadır: COUNTIF(...) > 1. Bu > 1kullanılır, çünkü bizimkiyle aynı en az bir hücre olduğunu biliyoruz. Bu bizim menzilimizdeki hücremizdir ve böylece kendisiyle karşılaştırılacaktır. Bir kopyayı belirtmek için, bizimkiyle eşleşen 2 veya daha fazla hücre bulmamız gerekiyor.


Kaynaklar:

  • Google Dokümanlar Düzenleyicileri Yardımı: COUNTIF ()
  • Google Dokümanlar Düzenleyicileri Yardımı: INDIRECT ()
  • Dokümanlar Düzenleyicileri Yardımı: ADDRESS ()
  • Google Dokümanlar Düzenleyicileri Yardımı: ROW ()
  • Dokümanlar Düzenleyicileri Yardımı: COLUMN ()

4
Ne yazık ki bu benim için çalışmıyor. Birçok kopya olmasına rağmen hiçbir şeyi vurgulamıyor. Neden olduğundan emin değilim, kulağa hoş bir çözüm gibi geliyor.
JVC

Bu benim için çalışıyor, ama aynı zamanda boş hücreleri de vurgular. Boşlukları hariç tutmanın bir yolu var mı?
gillespieza

1
@Amanda - Evet, biraz yaratıcılık ve bu mümkün. Ben hafta boyunca AFK, ama bir hafta içinde beni yakala. Fikir, bir AND deyimi (kullanarak *) ve başka bir denetim oluşturmaktır ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...))))). Mobil cihazlarda yapabileceğim en iyi şey bu. :)
Bencil

2
Tam olarak gereken çözüm budur. Bu sadece kopyaları tanımlamak için bir HASHMAP gibi çalışır.
AKh

1
Büyüleyici çalışıyor, teşekkürler @Selfish! Bana zaman kazandırdı. Not: Değiştirilecek tek şey $A$1:$C$50- söz konusu sütunlara göre olmalıdır . Bu genel yaklaşımı zolley'den daha çok seviyorum.
boldnik

28

@Zolley cevabı doğru. Sadece bir Gif ve referans için adımlar ekleyerek.

  1. Menüye git Format > Conditional formatting..
  2. bulmak Format cells if..
  3. =countif(A:A,A1)>1Alana ekleCustom formula is
    • Not: Harfi Akendi sütununuzla değiştirin.

resim açıklamasını buraya girin


2
Kopyaları vurguladıktan sonra bunları renge göre nasıl filtreleyebilirim?
Faysal

@Faisal sadece script veya addon ile
player0

27

"Metin İçerir" açılır menüsünden "Özel formül:" seçeneğini belirleyin ve şunu yazın: "= countif (A: A, A1)> 1" (tırnak işaretleri olmadan)

Ben tam olarak zolley önerilen gibi yaptım , ama küçük düzeltme yapılmalıdır: "Metin İçerir" yerine "Özel formül" kullanın . Ve sonra koşullu oluşturma işe yarayacak.

Menüden ekran görüntüsü


1
Seni küçümsemedim (bu soruyu bugün buldum), ama istediğin gibi cevabın üzerine bir yorum var. Noktalı virgülün formülde gerekli olduğunu sanmıyorum. Ayrıca, yine de Google sayfalarındaki koşullu biçimlendirme panelinde bir açılır menü görüyorum. En azından, seçim seçeneğini tıklıyorum ve genellikle bir açılır menüyü çağıracağım uzun bir seçenek kümesi görünüyor. Başlangıçta Text Containsaçılır menüde görünen seçenek sık sık olduğundan , kullanıcının açılır menüye erişmek için genellikle tıklaması gerekir.
Paul de Barros

Yorumunuz için teşekkürler Paul. Belki yanlış anladım: "Metin İçerir" (veya "Hücreleri biçimlendir ...") alt açılır menüsünün "Özel formül:" olduğunu anladım. Ayrıca, "Metin İçerir", "= countif (A: A, A1)> 1;" yerine karşılık gelen bir alt dize değerine sahip olmalıdır. Aslında bu başka bir yaklaşım.
Shurik

12

Kopyaları vurgulayın (C sütununda):

=COUNTIF(C:C, C1) > 1

Açıklama: C1Burada C'deki ilk satıra atıfta bulunulmaz. Bu formül koşullu bir biçim kuralı tarafından değerlendirildiğinden, formül geçerli olup olmadığını görmek için kontrol edildiğinde, C1etkin olarak şu anda hangi satırın değerlendirilmekte olduğunu belirtir vurgulamanın uygulanıp uygulanmayacağına bakın. ( Yani daha çok INDIRECT(C &ROW()), eğer bu sizin için bir şey ifade ediyorsa! ). Esasen, koşullu format formülü değerlendirilirken, satır 1'e atıfta bulunulan her şey, formülün çalıştırıldığı sıraya göre değerlendirilir. ( Ve evet, C2 kullanıyorsanız, kuraldan değerlendirilmekte olan satırın hemen altındaki satırın durumunu kontrol etmesini istersiniz. )

Yani bu C1, sütunun tamamında bulunan Cve değerlendirilmekte olan hücrenin (değerlendirilen geçerli hücrenin) ve bunlardan 1'den fazla varsa (yani değerin kopyaları varsa) sayımlarını o zaman sayın : vurgulamayı uygulayın ( çünkü formül , genel olarak, olarak değerlendirirTRUE ).

Yalnızca ilk kopyayı vurgulayın:

=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)

Açıklama: Bu yalnızca her iki COUNTIFs de TRUE(bir içinde görünüyorsa AND()) vurgular .

Değerlendirilecek ilk terim ( COUNTIF(C:C, C1) > 1) ilk örnekte olduğu gibidir; öyle TRUEde, her ne ise, sadece C1bir kopya vardır. ( Vurgulanıp vurgulanmayacağını görmek için kontrol edilen geçerli satıra etkili bir şekilde atıfta bulunduğunu unutmayınC1 ).

İkinci terim ( COUNTIF(C$1:C1, C1) = 1) benzer görünüyor ancak üç önemli farkı var:

Sütunun tamamını aramaz C(birincisinin yaptığı C:Cgibi:), ancak bunun yerine ilk satırdan aramayı başlatır: C$1 ( hangi satır değerlendirilirken değil, $kelimenin tam anlamıyla satırda görünmeye zorlar 1).

Ve sonra değerlendirilmekte olan satırdaki aramayı durdurur C1.

Sonunda diyor = 1.

Bu nedenle, yalnızca TRUEşu anda değerlendirilmekte olan satırın üzerinde herhangi bir kopya yoksa olacaktır (yani kopyaların ilki olmalıdır).

Bu ilk terimle birleştirildiğinde (yalnızca TRUEbu satırın yinelenmesi durumunda olur), bu yalnızca ilk oluşumun vurgulanacağı anlamına gelir.

İkinci ve sonraki kopyaları vurgulayın:

=AND(COUNTIF(C:C, C1) > 1, NOT(COUNTIF(C$1:C1, C1) = 1), COUNTIF(C1:C, C1) >= 1)

Açıklama: İlk ifade her zamankiyle aynıdır ( TRUEşu anda değerlendirilen satır yineleniyorsa).

İkinci terim, reddedilmesi dışında sonuncusuyla tamamen aynıdır: NOT()Etrafında vardır. Bu yüzden ilk oluşumu görmezden gelir.

Son olarak, üçüncü terim kopyaları 2, 3 vb. COUNTIF(C1:C, C1) >= 1Alır ve o anda değerlendirilen satırda ( C1içinde C1:C) arama aralığını başlatır . Daha sonra yalnızca bunun TRUEaltında bir veya daha fazla kopya varsa (ve bunu da içerir) değerlendirir (vurgu uygula): >= 1( >=yalnızca >son kopya göz ardı edilmemelidir ).


3

Tüm seçenekleri denedim ve hiçbiri işe yaramadı.

Yalnızca google uygulama komut dosyaları bana yardımcı oldu.

kaynak: https://ctrlq.org/code/19649-find-duplicate-rows-in-google-sheets

Belgenizin üst kısmında

1.- araçlar> komut dosyası düzenleyicisine gidin

2. - betiğinizin adını belirleyin

3. - bu kodu yapıştırın:

function findDuplicates() {
  // List the columns you want to check by number (A = 1)
  var CHECK_COLUMNS = [1];

  // Get the active sheet and info about it
  var sourceSheet = SpreadsheetApp.getActiveSheet();
  var numRows = sourceSheet.getLastRow();
  var numCols = sourceSheet.getLastColumn();

  // Create the temporary working sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = ss.insertSheet("FindDupes");

  // Copy the desired rows to the FindDupes sheet
  for (var i = 0; i < CHECK_COLUMNS.length; i++) {
    var sourceRange = sourceSheet.getRange(1,CHECK_COLUMNS[i],numRows);
    var nextCol = newSheet.getLastColumn() + 1;
    sourceRange.copyTo(newSheet.getRange(1,nextCol,numRows));
  }

  // Find duplicates in the FindDupes sheet and color them in the main sheet
  var dupes = false;
  var data = newSheet.getDataRange().getValues();
  for (i = 1; i < data.length - 1; i++) {
    for (j = i+1; j < data.length; j++) {
      if  (data[i].join() == data[j].join()) {
        dupes = true;
        sourceSheet.getRange(i+1,1,1,numCols).setBackground("red");
        sourceSheet.getRange(j+1,1,1,numCols).setBackground("red");
      }
    }
  }

  // Remove the FindDupes temporary sheet
  ss.deleteSheet(newSheet);

  // Alert the user with the results
  if (dupes) {
    Browser.msgBox("Possible duplicate(s) found and colored red.");
  } else {
    Browser.msgBox("No duplicates found.");
  }
};

4. kaydet ve çalıştır

3 saniyeden kısa bir sürede yinelenen satırım renklendi. Sadece betiği kopyalayın.

Google apps komut dosyaları hakkında bilmiyorsanız, bu bağlantılar size yardımcı olabilir:

https://zapier.com/learn/google-sheets/google-apps-script-tutorial/

https://developers.google.com/apps-script/overview

Umarım bu yardımcı olur.


Bu kod, sütundaki yinelenen alanları tam satır yerine yalnızca kırmızı ile vurgulayacak şekilde değiştirilebilir mi?
Amr
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.