ฉันกำลังมองหาสูตรเซลล์ไฮไลต์สเปรดชีตของ Google หากค่าซ้ำในคอลัมน์เดียวกัน
ทุกคนสามารถช่วยฉันสำหรับแบบสอบถามนี้ได้ไหม
ฉันกำลังมองหาสูตรเซลล์ไฮไลต์สเปรดชีตของ Google หากค่าซ้ำในคอลัมน์เดียวกัน
ทุกคนสามารถช่วยฉันสำหรับแบบสอบถามนี้ได้ไหม
คำตอบ:
ลองสิ่งนี้:
Custom formula is=countif(A:A,A1)>1(หรือเปลี่ยนAเป็นคอลัมน์ที่คุณเลือก)A1:A100)สิ่งใดก็ตามที่เขียนในเซลล์ A1: A100 จะถูกตรวจสอบและหากมีการทำซ้ำ (เกิดขึ้นมากกว่าหนึ่งครั้ง) จะมีการทำสี
สำหรับโลแคลที่ใช้เครื่องหมายจุลภาค ( ,) เป็นตัวคั่นทศนิยมตัวคั่นอาร์กิวเมนต์มักเป็นเซมิโคลอน ( ;) นั่นคือลอง: =countif(A:A;A1)>1แทน
countifsสำหรับหลายคอลัมน์การใช้งาน
;ผลลัพธ์สิ้นสุดในข้อผิดพลาด "สูตรที่ไม่ถูกต้อง" สำหรับฉัน เพียงแค่ลบมันได้เคล็ดลับ ระวังด้วย: เซลล์ที่คุณระบุเป็นอาร์กิวเมนต์อันดับที่ 2 ของcountifเซลล์ควรเป็นเซลล์แรกของช่วงที่คุณเลือก
=countif(B:B,B2)>1สูตรจะกลายเป็นภายใน สิ่งนี้อนุญาตให้หนึ่งทำการฟอร์แมตขั้นสูงสวย ๆ เมื่อใช้การอ้างอิงสัมบูรณ์เทียบกับเซลล์แบบอ้างอิง
ในขณะที่คำตอบของ zolleyเหมาะสำหรับคำถามนี่คือคำตอบทั่วไปสำหรับทุกช่วงเวลารวมถึงคำอธิบาย:
=COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1
A1:C50โปรดทราบว่าในตัวอย่างนี้ผมจะใช้ช่วง พารามิเตอร์แรก ( $A$1:$C$50) ควรถูกแทนที่ด้วยช่วงที่คุณต้องการเน้นรายการที่ซ้ำกัน!
เพื่อเน้นรายการซ้ำ:
Format>Conditional formatting...Apply to rangeเลือกช่วงที่ควรใช้กฎFormat cells ifเลือกCustom formula isที่เมนูดร็อปดาวน์ทำไมมันทำงาน
COUNTIF(range, criterion)จะเปรียบเทียบทุกเซลล์ในrangeกับcriterionซึ่งจะถูกประมวลผลคล้ายกับสูตร หากไม่มีโอเปอเรเตอร์พิเศษจะทำการเปรียบเทียบทุกเซลล์ในช่วงกับเซลล์ที่กำหนดและคืนจำนวนเซลล์ที่พบว่าตรงกับกฎ (ในกรณีนี้คือการเปรียบเทียบ) เรากำลังใช้ช่วงคงที่ (พร้อม$เครื่องหมาย) เพื่อให้เราดูตลอดช่วง
บล็อกที่สองINDIRECT(ADDRESS(ROW(), COLUMN(), 4))จะส่งคืนเนื้อหาของเซลล์ปัจจุบัน หากสิ่งนี้ถูกวางไว้ในเซลล์เอกสารจะร้องไห้เกี่ยวกับการพึ่งพาแบบวนรอบ แต่ในกรณีนี้สูตรจะถูกประเมินว่าเหมือนกับอยู่ในเซลล์โดยไม่เปลี่ยนแปลง
ROW()และCOLUMN()จะส่งคืนหมายเลขแถวและหมายเลขคอลัมน์ของเซลล์ที่กำหนดตามลำดับ หากไม่มีการระบุพารามิเตอร์เซลล์ปัจจุบันจะถูกส่งคืน (ซึ่งเป็นแบบ 1 เช่นB3จะส่งคืน 3 สำหรับROW()และ 2 สำหรับCOLUMN())
จากนั้นเราใช้: ADDRESS(row, column, [absolute_relative_mode])เพื่อแปลแถวตัวเลขและคอลัมน์เป็นการอ้างอิงเซลล์ (เช่นB3จำไว้ว่าในขณะที่เราอยู่ในบริบทของเซลล์เราไม่ทราบว่าเป็นที่อยู่หรือเนื้อหาและเราต้องการเนื้อหาเพื่อเปรียบเทียบกับ) พารามิเตอร์ที่สามดูแลการจัดรูปแบบและ4ส่งกลับการจัดรูปแบบที่INDIRECT()ชอบ
INDIRECT()จะทำการอ้างอิงเซลล์และส่งคืนเนื้อหา ในกรณีนี้เนื้อหาของเซลล์ปัจจุบัน จากนั้นกลับไปที่จุดเริ่มต้นCOUNTIF()จะทดสอบทุกเซลล์ในระยะเทียบกับของเราแล้วส่งกลับจำนวน
COUNTIF(...) > 1ขั้นตอนสุดท้ายคือการทำสูตรของเรากลับมาบูลโดยการทำให้มันเป็นตรรกะการแสดงออก: > 1ถูกนำมาใช้เพราะเรารู้ว่ามีอย่างน้อยหนึ่งเซลล์เหมือนกันกับเรา นั่นคือเซลล์ของเราซึ่งอยู่ในช่วงและจะเปรียบเทียบกับตัวเอง ดังนั้นเพื่อระบุความซ้ำซ้อนเราจำเป็นต้องค้นหาเซลล์อย่างน้อย 2 เซลล์ที่ตรงกับของเรา
แหล่งที่มา:
*) ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...)))))และการตรวจสอบอื่นดังนั้นตามสายของ นั่นเป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้บนมือถือ :)
$A$1:$C$50ไปตามคอลัมน์ที่อยู่ภายใต้คำถาม ฉันชอบวิธีการทั่วไปมากกว่า zolley
คำตอบของ @zolley ถูกต้อง เพียงเพิ่ม Gif และขั้นตอนสำหรับการอ้างอิง
Format > Conditional formatting..Format cells if..=countif(A:A,A1)>1ในช่องCustom formula is
Aด้วยคอลัมน์ของคุณเองจากเมนูแบบเลื่อนลง "ข้อความมี" ให้เลือก "สูตรแบบกำหนดเองคือ:" และเขียน: "= countif (A: A, A1)> 1" (ไม่มีเครื่องหมายคำพูด)
ผมว่าเป็นzolleyเสนอ แต่มีควรจะทำการแก้ไขขนาดเล็กใช้งาน: ใช้"สูตรที่กำหนดเองเป็น"แทน"ข้อความที่ประกอบด้วย" จากนั้นการเรนเดอร์ตามเงื่อนไขจะทำงาน

Text Containsนั้นเป็นสิ่งที่ผู้ใช้มักจะคลิกเพื่อเข้าสู่เมนูแบบเลื่อนลง
=COUNTIF(C:C, C1) > 1
คำอธิบาย: C1ที่นี่ไม่ได้อ้างถึงแถวแรกใน C เนื่องจากสูตรนี้ได้รับการประเมินโดยกฎรูปแบบที่มีเงื่อนไขแทนเมื่อสูตรถูกตรวจสอบเพื่อดูว่ามีการใช้หรือไม่การC1อ้างอิงที่มีประสิทธิภาพหมายถึงแถวใดก็ตามที่กำลังถูกประเมิน ดูว่าควรจะใช้ไฮไลต์ (ถ้าอย่างนั้นมันก็INDIRECT(C &ROW())หมายความว่าอะไรก็ตามสำหรับคุณ! ) โดยพื้นฐานแล้วเมื่อประเมินสูตรการจัดรูปแบบตามเงื่อนไขสิ่งใดก็ตามที่อ้างถึงแถว 1 จะถูกประเมินเทียบกับแถวที่สูตรนั้นถูกเรียกใช้ ( และใช่ถ้าคุณใช้ C2 คุณจะต้องถามกฎเพื่อตรวจสอบสถานะของแถวด้านล่างของแถวที่กำลังประเมินอยู่ )
ดังนั้นสิ่งนี้จึงบอกว่าเกิดสิ่งที่มีอยู่ในนั้น C1 (เซลล์ปัจจุบันที่กำลังประเมิน) ที่อยู่ในคอลัมน์ทั้งหมดCและถ้ามีมากกว่า 1 รายการ (เช่นค่ามีค่าซ้ำกัน): ใช้ไฮไลต์ ( เพราะสูตร โดยรวมแล้วประเมินเป็นTRUE )
=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)
คำอธิบาย: นี่จะเน้นเฉพาะถ้าทั้งสองอย่าง COUNTIFมีTRUE(พวกเขาปรากฏภายในAND() )
คำแรกที่จะได้รับการประเมิน ( COUNTIF(C:C, C1) > 1) จะเหมือนกันในตัวอย่างแรก มันก็TRUEต่อเมื่อสิ่งที่อยู่ในC1นั้นมีซ้ำ ( โปรดจำไว้ว่าC1หมายถึงแถวปัจจุบันที่ถูกตรวจสอบอย่างมีประสิทธิภาพเพื่อดูว่าควรเน้นหรือไม่ )
เทอมที่สอง ( COUNTIF(C$1:C1, C1) = 1) มีลักษณะคล้ายกัน แต่มีความแตกต่างที่สำคัญสามประการ:
มันไม่ได้ค้นหาทั้งคอลัมน์C(เหมือนที่คนแรกทำ:) C:Cแต่มันกลับเริ่มต้นการค้นหาจากแถวแรก: C$1
( $บังคับให้มันดูที่แถว1จริงๆไม่ใช่แถวใดจะถูกประเมิน)
C1และจากนั้นก็จะหยุดการค้นหาที่แถวปัจจุบันที่ถูกประเมิน
= 1ในที่สุดมันก็บอกว่า
ดังนั้นจะTRUEมีก็ต่อเมื่อไม่มีการซ้ำซ้อนด้านบนแถวที่กำลังได้รับการประเมิน (หมายความว่ามันจะต้องเป็นรายการแรกที่ซ้ำกัน)
รวมกับคำแรกนั้น (ซึ่งจะเป็นเฉพาะในTRUEกรณีที่แถวนี้มีซ้ำกัน) ซึ่งหมายถึงเฉพาะการเกิดขึ้นครั้งแรกเท่านั้นที่จะถูกเน้น
=AND(COUNTIF(C:C, C1) > 1, NOT(COUNTIF(C$1:C1, C1) = 1), COUNTIF(C1:C, C1) >= 1)
คำอธิบาย: การแสดงออกครั้งแรกเหมือนกันเสมอ (TRUEถ้าแถวที่ประเมินในปัจจุบันเป็นซ้ำเลย)
เทอมที่สองนั้นเหมือนกับเทอมสุดท้ายยกเว้นเมื่อตะกี้: มันมีNOT()อยู่โดยรอบ ดังนั้นมันจึงไม่สนใจสิ่งที่เกิดขึ้นครั้งแรก
ในที่สุดเทอมที่สามหยิบสำเนาที่ซ้ำกัน 2, 3 เป็นต้นCOUNTIF(C1:C, C1) >= 1เริ่มช่วงการค้นหาที่แถวที่ประเมินในปัจจุบัน ( C1ในC1:C) จากนั้นจะประเมินเป็นTRUE(ใช้ไฮไลต์) หากมีหนึ่งรายการที่ซ้ำกันด้านล่างนี้ (และรวมถึงรายการนี้): >= 1(ต้อง>=ไม่>ซ้ำกันมิฉะนั้นรายการซ้ำล่าสุดจะถูกละเว้น)
ฉันลองตัวเลือกทั้งหมดและไม่มีใครทำงาน
สคริปต์แอป google เท่านั้นที่ช่วยฉัน
แหล่งที่มา: https://ctrlq.org/code/19649-find-duplicate-rows-in-google-sheets
ที่ด้านบนของเอกสารของคุณ
1.- ไปที่เครื่องมือ> เครื่องมือแก้ไขสคริปต์
2.- ตั้งชื่อสคริปต์ของคุณ
3.- วางรหัสนี้:
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.- บันทึกและเรียกใช้
ในเวลาน้อยกว่า 3 วินาทีแถวที่ซ้ำกันของฉันมีสี เพียงคัดลอกสคริปต์ที่ผ่านมา
หากคุณไม่รู้เกี่ยวกับสคริปต์ของ Google แอปลิงก์นี้อาจช่วยคุณได้:
https://zapier.com/learn/google-sheets/google-apps-script-tutorial/
https://developers.google.com/apps-script/overview
ฉันหวังว่านี่จะช่วยได้.
=COUNTIFS(A:A; A1; B:B; B1)>1