Rumus Excel - meminta Rentang yang menghasilkan Rentang

3

Saya memiliki Range di Excel (B3: C8) dari mana saya ingin memfilter orang Inggris. Dalam SQL ini akan sangat sederhana:
SELECT Persons FROM [myTable] WHERE Nationality = 'English'

Bagaimana saya bisa menerapkan pemfilteran serupa pada Rentang di mana hasilnya bukan nilai tunggal melainkan Rentang?
Catatan: Excel memiliki tombol Filter, tetapi yang dilakukannya hanyalah menyembunyikan baris yang tidak diinginkan. Saya tidak ingin baris tersembunyi.

Ini adalah bagaimana saya ingin meja saya terlihat seperti. Seperti apa bentuk formula G3?

enter image description here

user24752
sumber

Jawaban:

3

Untuk memasukkan nama ke dalam rentang, Anda bisa membuat data menjadi tabel dan kemudian membuat tabel pivot Kebangsaan sebagai filter laporan dan Orang sebagai label baris. Lalu pilih Inggris dari daftar kewarganegaraan. Lihat tangkapan layar di bawah (abaikan kolom D karena tidak digunakan);

Pivot Table

CharlieRB
sumber
Anda tidak perlu membuat tabel pivot untuk memfilter pada Kewarganegaraan. Filter sederhana dari kolom Kebangsaan sudah cukup dan dia mengatakan dia tidak benar-benar ingin menyembunyikan baris (filter), dia ingin menghapusnya sepenuhnya
Jay
1
@Jay Saya tidak melihat kata "delete" dalam pertanyaan. Juga, filter sederhana tidak menyembunyikan baris. Terakhir, mungkin ada banyak cara untuk mencapai hal yang sama ketika ditanya; 'Beginilah aku ingin meja saya terlihat seperti. Seperti apa bentuk formula G3? '
CharlieRB
Saya pikir tabel pivot adalah solusi yang bagus di sini. +1
Doug Glancy
Dalam pertanyaan itu, dia berkata, "Catatan: Excel memiliki tombol Filter, tetapi yang dilakukannya hanyalah menyembunyikan baris yang tidak diinginkan. Saya tidak ingin baris tersembunyi." Membaca yang tersirat, yang ia inginkan adalah memiliki kolom dengan nama-nama yang sesuai dengan kriteria dan memiliki nama-nama lain yang tidak ada di kolom itu. Dan jangan salah paham, tabel pivot bagus, tapi saya pikir untuk tabel sederhana seperti itu, tidak layak membuat tabel pivot. Pada catatan lain, jawaban Doug Glancy persis apa yang ditanyakan.
Jay
3

Masukkan ini di G3 dan seret ke bawah. Ini adalah rumus array, jadi harus dimasukkan menggunakan Ctrl Shft Enter

=IFERROR(INDEX($B$3:$B$8,LARGE(($C$3:$C$8=$E$3)*(ROW($B$3:$B$8)-2),COUNTIF($C$3:$C$8,$E$3)-(ROWS($3:3)-1))),"")

Catatan, IfError hanya tersedia di XL 2007/10, jika tidak, Anda harus menggunakan:

=IF(ISERROR(INDEX($B$3:$B$8,LARGE(($C$3:$C$8=$E$3)*(ROW($B$3:$B$8)-2),COUNTIF($C$3:$C$8,$E$3)-(ROWS($3:3)-1)))),"",INDEX($B$3:$B$8,LARGE(($C$3:$C$8=$E$3)*(ROW($B$3:$B$8)-2),COUNTIF($C$3:$C$8,$E$3)-(ROWS($3:3)-1))))
Doug Glancy
sumber
Doug, aku menginginkan sesuatu seperti itu. Terima kasih atas usaha yang luar biasa, ini bekerja dengan sempurna. Namun, saya masih menandai tabel pivot sebagai solusi. Alasannya adalah rawatan. Formula ini sudah sangat kompleks untuk contoh buku teks kita. Ketika menerapkan dalam skenario kehidupan nyata, kompleksitasnya meledak lebih jauh. Tabel pivot tidak sesempurna ini, tetapi sangat mudah digunakan. Terima kasih lagi!
user24752
Saya setuju dengan sepenuh hati. Saya suka mencari rumus seperti ini, tapi saya jarang menggunakan yang rumit. Di lanskap campur aduk yang luas yaitu Excel, tabel pivot adalah batu stabilitas.
Doug Glancy
2

Versi ini akan bekerja di versi Excel apa pun dan memberikan hasil dalam urutan yang tercantum

Dalam G3:

=IF(ROWS(G$3:G3)>COUNTIF(C$3:C$8,E$3),"",INDEX(B$3:B$8,SMALL(IF(C$3:C$8=E$3,ROW(C$3:C$8)-ROW(C$3)+1),ROWS(G$3:G3))))

dikonfirmasi dengan CTRL + SHIFT + ENTER (ditekan bersama) dan disalin sejauh yang diperlukan

barry houdini
sumber
Ada kesalahan dalam rumus. Jika saya mengubah E3 menjadi 'Jerman', John tetap di G3 daripada Hans. Sama dengan memilih 'Prancis', Luis tidak muncul, tetapi John menggantikannya.
user24752
Bekerja dengan baik untuk saya ..... apakah Anda mengkonfirmasi dengan CTRL + SHIFT + ENTER dan kemudian salin? Jika saya mengubah E3 ke Jerman saya melihat Hans dan Jurgen seperti yang diharapkan .....
barry houdini
Maaf salah saya! Kamu benar.
user24752
0

Salah satu caranya adalah dengan menggunakan pernyataan IF ini = IF ($ E $ 3 = C3, B3, "") yang akan memberi Anda nama orang jika Kebangsaan cocok dengan filter atau kosong jika tidak.

N4TKD
sumber
0

=If($E$3=English,B3,"")

Anda dapat menjadikan ini lebih umum dengan melakukan:

=If($E$3=C3,B3,"")

soandos
sumber