- ベストアンサー
エクセルの質問です
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
簡単で分かり易く計算に負担のかからない方法は作業列を使う方法です。 C2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2=1,MAX(C$1:C1)+1,"") D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>MAX(C:C),"",INDEX(A:A,MATCH(ROW(A1),C:C,0)))
その他の回答 (5)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 D2に=IF(COUNTIF(B$2:B$7,1)>=ROW(A1),INDEX(A$1:A$7,SMALL(IF(B$2:B$7=1,ROW(A$2:A$7),999),ROW(A1))),"")、入力完了時にshift+ctrl+enterキーを同時押下後、下方向にコピー
お礼
お忙しい中、ご回答頂きまして誠に有難うございます。 実は質問に使った表は説明を分かり易くするために、実際に使う表とは違うものを使いました。 実際の表は行数が450行、列数が30列あり、数式も質問のもの以外に7000程入っており、しかもB列の数値が時間経過によって変わっていくというものですので、記述が複雑なものは、処理に結構なタイムラグが出るということが判明しました。 こんなことなら、初めからもっと詳しく書けば良かったかも、、、m(__)m 今回は他の方の数式を使わせて頂く事に致しましたが、行数等が少なくて済むときはmu2011様のものも使わせて頂きたいと思います。 回答者の皆様の有能ぶりに感服しております。 とても参考になりました。
こんにちは。30代既婚女性です。 単純に私ならD2に =IF(B2=1,A2,"") で出すかな…。 「抽出」とあるということは、氏名の横に出るだけではだめなのかしら? (空欄は上につめて、ならこれではダメですが…。)
お礼
お忙しい中、ご回答頂きまして誠に有難うございます。 また何かございましたら宜しくお願い致します。
- kagakusuki
- ベストアンサー率51% (2610/5101)
D2セルに次の数式を入力してから、D2セルをコピーして、D3以下に貼り付けると良いと思います。 =IF(ROWS($2:2)>COUNTIF($B:$B,1),"",INDEX($A:$A,SUMPRODUCT(ROW($B$1:$B$7)*($B$1:$B$7=1)*(COUNTIF(OFFSET($B$1,,,ROW($B$1:$B$7)-ROW($B$1)+1),1)=ROWS($2:2)))))
お礼
お忙しい中、ご回答頂きまして誠に有難うございます。 実は質問に使った表は説明を分かり易くするために、実際に使う表とは違うものを使いました。 実際の表は行数が450行、列数が30列あり、数式も質問のもの以外に7000程入っており、しかもB列の数値が時間経過によって変わっていくというものですので、記述が複雑なものは、処理に結構なタイムラグが出るということが判明しました。 こんなことなら、初めからもっと詳しく書けば良かったかも、、、m(__)m 今回は他の方の数式を使わせて頂く事に致しましたが、行数等が少なくて済むときはkagakusuki様のものも使わせて頂きたいと思います。 回答者の皆様の有能ぶりに感服しております。 とても参考になりました。
- keithin
- ベストアンサー率66% (5278/7941)
A1セルに「対象者番号」と記入 B列に名前以下を記入 C列に評価以下を記入 A2に =IF(C2=1,COUNTIF($C$2:C2,C2),"") を記入,以下コピー。 E1に「対象者番号」と記入 F1に「対象者氏名」と記入 E2に =IF(ROW(E1)>MAX(A:A),"",ROW(E1)) 以下コピー F2に =IF(E2="","",VLOOKUP(E2,A:C,2)) 以下コピー。
お礼
お忙しい中、ご回答頂きまして誠に有難うございます。 とても参考になりました。 また、何かございましたら宜しくお願い致します。
お礼
お忙しい中、ご回答頂きまして誠に有難うございます。 実は質問に使った表は説明を分かり易くするために、実際に使う表とは違うものを使いました。 実際の表は行数が450行、列数が30列あり、数式も質問のもの以外に7000程入っており、しかもB列の数値が時間経過によって変わっていくというものですので、記述が複雑なものは、処理に結構なタイムラグが出るということが判明しました。 KURUMITO様のご回答は答えを得るまで二段階の作業となっていますが、記述がシンプルなので動作が軽くて良かったです。