Cara mengatur ulang 2 kolom data dengan duplikat dalam satu kolom

1

Maaf jika judulnya membingungkan. Saya hampir sepanjang malam berusaha memecahkan masalah ini dan saya tidak yakin bagaimana mengatakannya. Bantuan apa pun akan dihargai.

Saya memiliki spreadsheet dengan Nama di Kolom A dan Nomor ID di Kolom B. Sepertinya ini

Sally     1004
Sally     1005
Sally     1006
Robert    1007
Robert    1008

dll.

Saya memiliki spreadsheet lain yang karena beberapa keadaan, saya tidak dapat memfilter dengan cara apa pun yang memiliki nama seperti ini

Sally
Sally
Robert
Robert
Robert

Mereka semua abjad tetapi seperti yang Anda lihat dalam kasus Sally dia muncul lebih banyak di contoh pertama kemudian di lembar kedua yang sama sekali baik-baik saja Namun, Robert muncul lebih banyak di lembar kedua kemudian di lembar pertama dan saya membutuhkan ini untuk mengembalikan semacam kesalahan. Saya juga perlu Sheet2 harus memiliki nomor ID agar dapat muncul. Ini adalah tujuan akhir

Sally     1004
Sally     1005
Robert    1007
Robert    1008
Robert    #N/A           (or any other error)

Saya telah menghabiskan berjam-jam mencoba menemukan rumus array untuk bekerja dan tidak berhasil. Jika Anda tahu bagaimana saya harus melanjutkan, saya akan sangat menghargainya.

Zach Shaner
sumber

Jawaban:

0

Gunakan rumus ini:

=INDEX(Table1[ID],SMALL(IF(A2=Table1[name],ROW(Table1[name])-ROW(Table1[[#Headers],[name]]),10^9),COUNTIF(Sheet2!$A$1:A2,A2)))

Tentu saja ini juga merupakan formula array.

  • IF(A2=Table1[name],ROW(Table1[name])-ROW(Table1[[#Headers],[name]]),10^9)
    • mengembalikan nomor baris untuk baris dalam tabel sumber yang berisi nama sebenarnya
      (dikoreksi oleh jumlah baris judul tabel, agar berfungsi dengan benar dalam fungsi indeks)
    • kembali 10^9 untuk orang lain (hanya untuk mendapatkan jumlah besar tidak membingungkan SMALL berfungsi, mungkin "" akan bekerja juga)
  • COUNTIF(Sheet2!$A$1:A2,A2) - hitung jumlah nama di atas baris saat ini
  • SMALL(IF(...),10^9),COUNTIF(...)) - mengembalikan nomor baris terkecil (terkoreksi) berikutnya
  • =INDEX(Table1[ID],SMALL(...)) - mengembalikan ID

Untuk keterbacaan formula yang lebih baik, saya telah mengonversi rentang pertama Anda ke tabel, tentu saja Anda dapat menggunakan alamat juga.

enter image description here

Máté Juhász
sumber
Bisakah Anda jelaskan ini?
Chris Rogers
Ini persis apa yang saya cari. Ini benar-benar penghemat malam. Terima kasih
Zach Shaner