Değer aynı sütunda yineleniyorsa, google elektronik tablo vurgulama hücresi için formül arıyorum
kimse bu sorgu için bana yardımcı olabilir mi?
Değer aynı sütunda yineleniyorsa, google elektronik tablo vurgulama hücresi için formül arıyorum
kimse bu sorgu için bana yardımcı olabilir mi?
Yanıtlar:
Bunu dene:
Custom formula is
=countif(A:A,A1)>1
(veya A
seçtiğiniz sütunda değiştirin )A1:A100
.).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)>1
yerine.
Birden çok sütun için kullanın countifs
.
;
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 countif
hücre, seçtiğiniz aralığın ilk hücresi olmalıdı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.
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:
Format
>Conditional formatting...
Apply to range
, kuralın uygulanacağı aralığı seçin.Format cells if
seçinCustom formula is
açılır üzerinde.Neden çalışıyor?
COUNTIF(range, criterion)
, Her hücreyi karşılaştırır range
iç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, B3
3 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 4
ve 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 > 1
kullanı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:
*
) ve başka bir denetim oluşturmaktır ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...)))))
. Mobil cihazlarda yapabileceğim en iyi şey bu. :)
$A$1:$C$50
- söz konusu sütunlara göre olmalıdır . Bu genel yaklaşımı zolley'den daha çok seviyorum.
@Zolley cevabı doğru. Sadece bir Gif ve referans için adımlar ekleyerek.
Format > Conditional formatting..
Format cells if..
=countif(A:A,A1)>1
Alana ekleCustom formula is
A
kendi sütununuzla değiştirin."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.
Text Contains
açı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.
=COUNTIF(C:C, C1) > 1
Açıklama: C1
Burada 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, C1
etkin 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 C
ve 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
).
=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)
Açıklama: Bu yalnızca her iki COUNTIF
s 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 TRUE
de, her ne ise, sadece C1
bir 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:C
gibi:), 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 TRUE
bu satırın yinelenmesi durumunda olur), bu yalnızca ilk oluşumun vurgulanacağı anlamına gelir.
=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) >= 1
Alır ve o anda değerlendirilen satırda ( C1
içinde C1:C
) arama aralığını başlatır . Daha sonra yalnızca bunun TRUE
altı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 ).
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.
=COUNTIFS(A:A; A1; B:B; B1)>1