こんにちは。
エクセルで特定の条件にマッチするセルの隣のセルの文字列を別シートに抽出したいのですが、
どの関数を使えば良いか分かりません…。
ご存知の方がいらっしゃいましたら、ご回答頂ければ助かります。
※シート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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel関数の式の作り方を教えて...
-
【ExcelVBA】最終行の取得で困...
-
Excelのセル値に基づいて図形の...
-
EXCELのページを、枠線を維持し...
-
Excel 数式バーの情報を、別シ...
-
Excelで、時間の引き算でマイナ...
-
Excel 最小二乗法 二次関数
-
Excelで数式を用いて番号を順に...
-
エクセルで現場ごとに機材の移...
-
他部署からもらう データで、 ...
-
とびとびの大量セルを選択した...
-
Excel 1の位の数字で処理を分岐...
-
-1234 を (1234) と表記する由...
-
エクセルの数式バーのフォント...
-
MACにおけるエクセルの入力トラ...
-
Excelのセルの色を変えた行(す...
-
エクセルの数式について教えて...
-
Lookup関数
-
Excelでの記号と特殊文字につい...
-
EXCELの散布図で日付が1900年に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報