- ベストアンサー
指定した3つのセルのデータを抽出し別表を作成する方法とは?
- A表のB、D、F列にデータが入力されている場合、それを抽出してB表を作成するためのエクセル関数を教えてください。
- F列は同じデータが表示されるため、VLOOK関数を使用することができますが、B,D列にデータが入力されていない場合は表示しないようにしたいです。
- 3つのセルのうち、一つでもデータがない場合は表示させない方法も教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
今仮に、A表が存在しているシートがSheet1、B表が存在しているシートがSheet2であるものとして、Sheet3のA列を作業列として使用するものとします。 まず、Sheet3のA1セルに次の数式を入力して下さい。 =IF(OR(INDEX(Sheet1!$B:B$,ROW())="",INDEX(Sheet1!$D:$D,ROW())="",INDEX(Sheet1!$F:F$,ROW())=""),"",ROW()) 次に、Sheet3のA1セルをコピーして、Sheet3のA2以下に、A表の行数を上回るのに充分な行数となるまで、貼り付けて下さい。 次に、Sheet2のA1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$B:$B,SMALL(Sheet3!$A:$A,ROWS($1:1)))) 次に、Sheet2のB1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$D:$D,SMALL(Sheet3!$A:$A,ROWS($1:1)))) 次に、Sheet2のC1セルに次の数式を入力して下さい。 =IF(ROWS($1:1)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!$F:$F,SMALL(Sheet3!$A:$A,ROWS($1:1)))) 次に、Sheet2のA1~C1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。 これで、B,D,F列にデータが存在する行のデータが抽出されます。 尚、B,D,F列の全てにデータが存在する行のみ、データを抽出するのではなく、F列のデータの有無には関わりなく、B列とD列の両方にデータが存在している行を、全て抽出する場合には、Sheet3のA1セルに入力する数式を、次の様に修正して下さい。 =IF(OR(INDEX(Sheet1!$B:B$,ROW())="",INDEX(Sheet1!$D:$D,ROW())=""),"",ROW())
その他の回答 (1)
- aokii
- ベストアンサー率23% (5210/22062)
B列とD列にフィルタを設定して、(空白セル)のチェックを外してはいかがでしょう。
お礼
計画していた表が作成できました。大変ありがとうございました。