Spreadsheet: buat kolom berdasarkan satu kolom yang diurutkan berdasarkan nilai yang lain

1

Saya ingin membuat kolom data baru dari satu kolom diurutkan berdasarkan kolom lain.

Paling mudah dijelaskan dengan sebuah contoh. Ini sebenarnya bukan apa yang saya lakukan, tetapi saya pikir itu menjelaskan dengan baik. Katakanlah kolom A memiliki nama orang-orang dalam urutan abjad:
Adam
Betty
Colin
Debbie

dan kolom B memiliki tahun kelahiran mereka:
1985
1973
1954
1973

Saya ingin membuat kolom C, yang mencantumkan nama orang-orang pada tahun kelahiran mereka:
Colin
Betty
Debbie
Adam

Ini harus dilakukan dengan cara tanpa mengubah atau menyortir kolom A atau B.
Ini harus dilakukan dengan cara yang secara otomatis akan memperbarui kolom C jika kolom A atau B diedit.

Terima kasih! (Saya bekerja di Excel pada Windows 10 jika ada bedanya.)

Mark Green
sumber
Saya tidak dapat memahami apa yang sebenarnya ingin Anda capai karena kedua Nama & amp; Tahun kelahiran sudah tersedia, lebih baik bagikan hasil keinginan !!
Rajesh S
Output yang diinginkan adalah data yang sama dengan kolom A, tetapi dalam kolom yang berbeda dan diurutkan (tercantum dalam urutan berbeda sesuai dengan tanggal di kolom B)
Mark Green

Jawaban:

0
Cx=INDIRECT(ADDRESS(COUNTIF(B:B,">=" & Bx),1))

Nilai tahun lahir harus unik.

Jika data dimulai dari baris dengan angka lebih dari 1 - tambahkan angka yang tepat ke nilai COUNTIF ().

Akina
sumber
1
Apa itu Cx & amp; Bx !!
Rajesh S
@RajeshS С 1 dan B 1 , C2 dan B2, ... tetapi tidak C 1 dan B 2 .
Akina
Maaf saya tidak kembali ke pertanyaan saya selama beberapa hari. Saya memang ingin mengatasi duplikat tahun jika memungkinkan. Tapi saya tertarik dengan fungsi ini. Ini berfungsi (terlepas dari masalah duplikat). Tetapi bagaimana cara menarik teks dari kolom A tanpa referensi ke kolom A dalam rumus?
Mark Green
0

Ini akan mudah jika tahun dalam kolom B unik, tetapi kami dapat menyesuaikan tahun duplikat. Di D1 memasukkan:

=B1

dan masuk D2 memasukkan:

=B2+COUNTIF(B$1:B1,B2)*0.001

dan salin ke bawah. Kolom D kolom ulangan B dengan duplikat "tidak konflik". Ini memungkinkan MATCH() berfungsi untuk mengambil semua nilai. Akhirnya, di C1 memasukkan:

=INDEX(A:A,MATCH(SMALL(D:D,ROWS($1:1)),D:D,0))

dan salin ke bawah:

enter image description here

Gary's Student
sumber
0

@ Garry's Student karena suatu alasan saya tidak menemukan formula yang saya butuhkan sebelumnya. Ketika saya tidak bisa kembali ke halaman ini selama beberapa hari, penelitian lebih lanjut menemukan saya rumus RANK. (Dalam Excel terbaru, RANK didepresiasi jadi saya menggunakan RANK.EQ yang lebih baru. Dan kemudian saya memikirkan VLOOKUP tetapi dengan sedikit pencarian saya menemukan INDEX MATCH yang tampaknya lebih baik, dan Anda juga menggunakannya.
Jadi inilah yang saya pikirkan dan bagaimana saya mengatasi tahun duplikat: nama peringkat spreadsheet menurut tahun

(Rumus saya mulai di baris # 2 karena tajuk)
Rumus C kolom:

=RANK.EQ(B2,B$2:B$15,1)

Penting untuk mengetahui cara kerja peringkat. Jika ada tiga item di posisi nomor 5, semuanya diberi peringkat 5, dan tidak akan ada item dengan peringkat 6 atau 7. Posisi berikutnya adalah peringkat 8.

Rumus D kolom:
di sel pertama

=C2

dan di sel-sel berikutnya

=C3+COUNTIF(C$2:C2,C3)

Ini menghilangkan peringkat rangkap. Peringkat tersebut dinaikkan 1 jika ada peringkat rangkap di atas dalam daftar. Jadi nomor duplikat 5 itu akan diberi peringkat 6 & amp; 7.

Kolom E hanyalah daftar nomor berurutan, cukup mudah untuk diisikan otomatis.

Kolom F rumus menyatukan semuanya:

=INDEX($A$2:$A$15,MATCH(E2,$D$2:$D$15,0))

Pokoknya saya ingin membagikan apa yang saya miliki saat bekerja dan sedikit berbeda. Tapi mungkin jawaban dari Garry's Student lebih baik karena menggunakan lebih sedikit kolom untuk sampai ke sana. (Mungkin saya bisa menggabungkan beberapa dan menggunakan lebih sedikit kolom juga dengan metode saya.)

Mark Green
sumber