webdevqa.jp.net

Excelの数式-範囲の結果となる範囲をクエリする

Excelに範囲(B3:C8)があり、そこからイギリス人を除外したいと思います。 SQLでは、これは非常に単純です。
SELECT Persons FROM [myTable] WHERE Nationality = 'English'

結果が単一の値ではなく範囲である範囲に同様のフィルタリングを適用するにはどうすればよいですか?
備考:Excelには[フィルター]ボタンがありますが、不要な行を非表示にするだけです。非表示の行は必要ありません。

これが私のテーブルをどのように見せたいかです。 G3の式はどのようになりますか?

enter image description here

3
user24752

名前を範囲に入れるには、データをテーブルにしてから、レポートフィルターとしてNationality、行ラベルとしてPersonsを使用してピボットテーブルを作成します。次に、国籍リストから英語を選択します。以下のスクリーンショットを参照してください(列Dは使用されていないため、無視してください)。

Pivot Table

3
CharlieRB

これをG3に入力し、下にドラッグします。これは配列数式なので、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))),"")

IfErrorはXL2007/10でのみ使用可能であることに注意してください。それ以外の場合は、以下を使用する必要があります。

=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))))
3
Doug Glancy

このバージョンは、どのバージョンのExcelでも機能し、リストされている順序で結果を提供します。

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))))

cTRL + SHIFT + ENTER (一緒に押す)で確認し、必要なだけコピーします

2
barry houdini

1つの方法は、このIFステートメント= IF($ E $ 3 = C3、B3、 "")を使用することです。これにより、国籍がフィルターに一致する場合は個人名が、一致しない場合は空白が表示されます。

0
N4TKD

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

これをより一般化するには、次のようにします。

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

0
soandos