
こんにちは。
エクセルで特定の条件にマッチするセルの隣のセルの文字列を別シートに抽出したいのですが、
どの関数を使えば良いか分かりません…。
ご存知の方がいらっしゃいましたら、ご回答頂ければ助かります。
※シート1に以下の様に入力されているとして、B列が「0」の隣のセル(A列)の文字列をシート2に抽出したいと思っています。
【シート1】
A B
1 [鈴木] [0]
2 [佐藤] [5]
3 [高橋] [0]
↓
【シート2】
A
1 [鈴木]
2 [高橋]
※佐藤は「5」なので抽出しない。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
1つの関数で目的の処理が出来るものはありませんので、幾つかの関数を組み合わせて1つの数式を構成します。
Sheet2の1行目から下へ抽出するときは次の数式で良いと思います。
=IFERROR(INDEX(Sheet1!A$1:A$3,SMALL(INDEX((Sheet1!B$1:B$3=0)*ROW(B$1:B$3),0),COUNTIF(Sheet1!B$1:B$3,">0")+ROW())),"")
Excel 2007以降のバージョンで再現できるはずです。
処理対象は元データがA1からB3までになっていますのでデータの行数に合わせて数式の行番号を変更してください。
尚、入れ子構造のINDEX関数で内側はSMALL関数に与える配列値を加工するためのものであり、他の方法でも処理可能です。
基本的には次の数式になります。
=IFERROR(INDEX(Sheet1!A$1:A$3,SMALL((Sheet1!B$1:B$3=0)*ROW(B$1:B$3),COUNTIF(Sheet1!B$1:B$3,">0")+ROW())),"")
この数式は計算過程で関数に与える値が配列値を扱うため数式バーへ入力後、Ctrl+Shift+Enterで確定しなければなりません。
確定後に数式バーの表示が数式全体を{}で括られた状態になります。
貼付画像はExcel 2013で検証した結果です。
D列がSheet2と等価の状態にしてありますので試してください。

No.4
- 回答日時:
Sheet1!D1: =IF(AND(B1<>"",B1=0),ROW(),"")
Sheet2!A1: =IF(ROW()>COUNT(Sheet1!D:D),"",INDEX(Sheet1!A:A,SMALL(Sheet1!D:D,ROW())))

No.3
- 回答日時:
1つの式で表示するなら、以下の式を入力して下方向にオートフィルコピーしてください。
=INDEX(Sheet1!A:A,SMALL(INDEX((Sheet1!$B$1:$B$100>0)*1000+ROW($1:$100),),ROW(1:1)))&""
ちなみに、Sheet1のデータ範囲が1行目から100行目のセル範囲にない場合は、$B$1:$B$100と$1:$100の数字だけを変更してください(数式が重くなるので必要以上に範囲を広げないこと)。
No.1
- 回答日時:
非常にしばしば寄せられるご相談の一種ですが、エクセルには「条件に合致する一連の結果を列記してくれる関数」は有りません。
(他のソフト、たとえばGoogle SpreadSheetなど、にはそういう便利な関数が用意されているものもあります)とは言え今はエクセルのお話なので。
方法1:簡単な方法 添付図参照
B列に名前
C列に数字、ただし簡単のためゼロじゃなく「1」を記入したデータを抽出する
A1には
=IF(C1=1,COUNTIF(C$1:C1,C1),"")
以下コピー
シート2のA1:
=IF(ROW(A1)>MAX(Sheet1!A:A),"",VLOOKUP(ROW(A1),Sheet1!A:B,2))
またはエクセル2007以降をご利用の場合は
=IFERROR(VLOOKUP(ROW(A1),Sheet1!A:B,2,FALSE),"")
以下コピー
方法2:イミフメイな方法
A列に名前
B列に数字、ただし簡単のためゼロじゃなく「1」を記入したデータを抽出する
シート2のA1:
=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!B$1:B$99=1,ROW(Sheet1!B$1:B$99),9999),ROW(A1)))&""
と記入、必ずコントロールキーとシフトキーを押しながらEnterで入力、以下コピー。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excel>マクロ>特定のセルで同じ情報が登録されている行を1行にまとめたい(文字連結) 6 2023/01/05 16:30
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
- Excel(エクセル) エクセル関数について 8 2023/06/28 17:04
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) Excelの文字列を転記したいのですが。 2 2022/09/30 12:09
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
エクセル
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
【マクロ】アクティブセルの時...
-
【関数】同じ関数なのに、エラ...
-
【マクロ】A列にある、日付(本...
-
エクセルの循環参照、?
-
【マクロ】3行に上から下に並...
-
【マクロ】WEBシステムから保存...
-
【マクロ】EXCELで読込したCSV...
-
iPhoneのExcelアプリで、別のシ...
-
【エクセル】期限アラートについて
-
【条件付き書式】シートの中で...
-
Excelファイルを開くと私だけVA...
-
Excelの新しい空白のブックを開...
-
派遣会社とかハローワークとか...
-
マクロ・VBAで、当該ファイルの...
-
VBA チェックボックスをオーバ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報