• 締切済み

エクセルで動的に取捨選択させる方法

エクセルにて以下の事を試したいのですが可能なのでしょうか? (1) まず最初に、Sheet1 と Sheet2 に全く同じ表を用意します。 (2) Sheet1の表には、 赤   100   a 青   300   b1 赤   100   a 赤   100   a 白   500   c 青   310   b2 青   320   b3 赤   100   a と、手入力します。 (3) この時、Sheet1にデータを入力したと同時に、Sheet2の方では自動で、Sheet1の1列目が『青』となっている行だけを拾ってSheet2の表に表示させたいのです。 青   300   b1 青   310   b2 青   320   b3 と、言った具合いです。 私なりに、IF文を使って『セルA1が青であれば表示させ、それ以外であれば表示させない。』という感じで、 ・Sheet2のA1に、 =IF(Sheet1!A1="青",Sheet1!A1,"") ・同様に、Sheet2のB1に、 =IF(Sheet1!A1="青",Sheet1!B1,"") ・同様に、Sheet2のC1に、 =IF(Sheet1!A1="青",Sheet1!C1,"") とし、あとは表の下までオートフィルしてあげたのですが、これだと青以外が入力されていたセルの位置が虫喰い(空白のセル)のようになってしまい見た目がよくありません。 青   300   b1 青   310   b2 青   320   b3 と、なってしまいます。できればキレイに見えるように自動で上詰めにしたいのですが、方法がわからず仕方なく、虫喰いの行を一つずつ手作業で『表示させない』にしてやっています。 (※行を削除すると式がずれてしまいエラーになってしまうため) 何か良い改善方法、お知恵がありましたら、ご助力のほどを是非とも宜しくお願い致します。 それとも、エクセルで根本的にそこまでの機能は有してないのでしょうか?

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>エクセルで根本的にそこまでの機能は有してないのでしょうか? 何とも大仰な! 関数の組み合わせでできますよ。 過去問にもたくさんの事例がありますがSheet2の適当なセルに以下の式を貼り付けて下方向、および右方向にコピーしてください =IF(COUNTIF(Sheet1!$A:$A,"青")>=ROW(A1),INDEX(Sheet1!A:A,SMALL(INDEX(SUBSTITUTE((Sheet1!$A$1:$A$1000="青")*1,0,10^5)*ROW(Sheet1!$A$1:$A$1000),),ROW(A1))),"")

sisuhu
質問者

お礼

遅くなりましたが回答ありがとうございました。 お答え頂いた関数を調べてこれから意味を理解していきたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • エクセル 関数を使わずにデータを取りたい

    EXCELを使ってデータ入力をしたいです。 下の図のように、シート1のA列にコードを入力すると、シート2のテーブルから値を引っ張ってくるようにしたい。 たとえば、シート1のA1に"C001"を入力したら、B1に"赤"が自動入力されるようにしたい。 シート1 A列 B列 行1 C001 シート2 A列 B列 行1 C001 赤 行2 C002 青 行3 C003 黄色 ただし、シート1のB列の値は、入力後に編集するため、ここには計算式を入れたくないのです。 なので、通常ならばB列にVLOOKUP関数を使えばすむことですが、計算式を入れずに上記を実現する方法を教えてください。

  • エクセルでのセルの色づけ方法

    教えてください。 エクセルで、8000行、15列程度の表があります。 例えば、A2に、Aと入力すると、A2とA1の両セルが水色 Bと入力すると、A2とA1の両セルが黄 Cと入力すると、A2とA1の両セルが赤 他にも、例えば C4に、Bと入力すると、C4とC3の両セルが赤 Bと入力すると、C4とC3の両セルが黄 Cと入力すると、C4とC3の両セルが赤   などのように、A=水色   B=黄色   C=赤になるように 条件付き書式を設定し、その書式を他のセルへコピーして、 1000行位までは、ちゃんと保存できたのですが、8000行程度まで、コピーして、保存すると、『保存できません』と表示されてしまい、1000行以上は条件付き書式のコピーをしても、コピーはできますが、保存できないため、大変困っています。。。もしかして、条件付き書式には、書式のコピーができる制限があるのでしょうか?あとは、VBなどで対応 するしかないのでしょうか。VBもまったく分かりません。。 是非、よろしくお願いいたします。

  • エクセルの関数による条件分岐について

    単刀直入で申し訳ないですが、 Sheet1に下記の表を作成し、 青   100   B 青   300   B3 赤   200   A2 白   400   C5 青  (空セル) D 白   100   AA 白   100   B 青   400   D3 青   200  (空セル) Sheet2ではSheet1の列が『青』の行だけ上詰めで表示するような エクセル表を作成しようとしています。 具体的には、 『もしSheet1が青ならばSheet2で青の行を表示しかつ上に積める、もし青以外であればSheet2ではその行は表示しない、もしセルが空欄であればSheet2では「未記入」と表示させる。』 といった感じの動作をさせたいのです。 Sheet1の表に上記の値を入力すると、Sheet2では関数を用いて結果的に以下のような表が完成するようにしようと思っています。 青   100   B 青   300   B3 青   未記入  D 青   400   D3 青   200  未記入 ------------------------------------------------------------- また、これとは別なのですが、電話表を作成するにあたって、 SheetAに『名前、電話番号』の元データを入力しておき、 SheetBで名前を入力すると自動で電話番号が横のセルに表示され、 かつSheetAの元データにない電話番号が入力されると、「登録者なし」 と表示する。ようにするにはどのような方法があるでしょうか? AND関数で元データの人の名前を全通り入力し、そうでなければ「登録者なし」と表示するといったものを作成したのですが見た目が悪い上に、同じ箇所でAND関数を繰り返し使うには回数限度があるようで、登録者が多いと使えません。 一度にたくさんの質問で申し訳ないのですがもしよろしければご回答宜しくお願い致します。

  • エクセルにて

    A列には日付が入力してあります。(2001/7/17) その日付から3日間経過してもC列のその行に何も入力されなければ、 B列のそのセルを黄色に表示する。 更に7日間経過しても入力なければ赤に表示するようにしたいのですが!? C列に入力されればB列のそのセルは青色表示にしたいのですが!     A      B     C 1 2000/7/10   赤 2 2000/7/11   青   2001/7/16 2 2001/7/13   黄   

  • エクセルのセルへの色づけ方法について

    現在、エクセルで統計用のデータシートを作っているのですが、あるセルにデータが入力されると、別の列で同じ行のセルの色が変わる、という設定をしたいのです。 たとえば、 B列のセルに数字or分数が入れられた場合はA列同行のセルが黄色 C列のセルに数字or分数が入れられた場合はA列同行のセルが赤色 D列のセルに数字or分数が入れられた場合はA列同行のセルが青色 E列のセルに数字or分数が入れられた場合はA列同行のセルが緑色 表自体はAに入力されているデータで管理されているので、そこから横に派生していく条件によってAのステータスが確認できるようにしたいと思っております。 つまり、B,C,D,E,のいづれかにデータが入力された場合、その列に応じてAの色が変わるという設定です。 色が3色だったら条件つき書式で設定が出来ましたが、四色以上になってくるとIF関数を使い =IF(B1>=1,"S",IF(C1>=1,"O",IF(D1""," ","D")))みたいな式を設定し 更にそのセルを確認して色を変える方法しか思いつかず。。。 ただでさえ非常に横に長いシートなので、不必要に使用する列を増やしたくないのと出来るだけ簡素化した表にしたいと思っております。 どなたかエクセルに詳しい方がいらしたらご教示いただけないでしょうか? 尚、エクセルは2003でOSはVISTAを使用しております。 お手数ですが宜しくお願い致します。

  • エクセルでの表記方法について質問いたします。

    初めて質問いたしますので宜しくお願いいたします。 エクセル2007での表記についての質問です。 (1)シート1のセルA1の入力数値が“3”であった場合、シート2のセルA1にその“3”を自動表示します。 そのシート2の2行目にセルA2から数値1から順番に5迄を固定準備しておきます。 (2)シート2のA1に表記された“3”を固定されたシート2の2行目のセル2C(表記は固定数値3)の固定された数値と同じ場所の下の行(3行目のセルC3)に自動で表記し、その数値を基準に(この場合セルC3が3)3行目のC4から“4・5”と並び、1・2はセルA3・B3に自動表記する。 (3)シート2で固定された数値2行目の下に自動表記された数値(この場合3)のみ自動でセルの色を変える。 以上3件をシート1に数値入力したときに項目1~3を自動で出来ないでしょうか。 私ほぼ素人で、仕事で急を要しています。 検索等しましたが、理解できるものがありませんでした。 (私のレベルの低さの為) 初歩的な質問で、誠に申し訳ありません ご回答を宜しくお願いいたします。

  • Excelの関数『IF』にて・・・

    EXCELにて、関数IFを使って一覧表から 自動入力をしたいと考えています。 例えば、以下のようにしてセル『C1』の数字に 応じて、自動を試みたい時 =IF($C$1>80,"=A1",IF($C$1>70,"=B1","=C1")) =A1,=B1,=C1 の場所を文字列としてしか読み取ってくれません =A1,=B1,=C1では無く=A1,=B1,=C1のセルに入力されてる 数式(他のセルの値)を、表示したいんですが どのようにすれば可能でしょうか? 何度やっても「=A1」と、そのまま文字列として出て来ちゃいます。

  • IF関数の選択肢を増やす方法について

     例・・・A1セルに4、B4セルに3、C5セルに2が入力されると                                    D1セルに5が表示。      A1セルに3、B4セルに2、C5セルにAかBが入力されると                                    D1セルに6が表示。                         ・                         ・                         ・                        続く。 D1セルに、 =IF(AND(A1=4,B4=3,C5=2),5,IF(AND(A1=3,B4=2,OR(C5="A",C5="B")),6,・・・・  のような感じで増やしていたのですが、IFが7つで限界?のようなのですが、 何か方法はありますか?もしあれば教えてください・・・。 エクセル2003です。よろしくお願いします。

  • エクセルの使用方法

    エクセルの使用方法で質問があります。 1.あるA列10行に数式が入力されています。その数式はA列9行+B列10行の値です。B列10行に数値を入力する時、C列10行には日付を入力しています。このままだと、B列、C列に何も入力されていない行でも、A列だけは、延々と数値が表示されてしいます。できれば、B or C列に入力していない時は、A列の表示を空白にすることはできないでしょうか? 2.上記のようにA列には、数値が入っており、何行目まで数値があるのかは、B列、C列次第です。この状態で、A列の一番下の行のセルの数値を、固定したセルに表示させる方法はないでしょうか? ただこのシートは複数個作成し、あるシートでは、10行目が一番下だったり、あるシートでは25行目が一番下だったりする条件になります。 またB列にはマイナスの数値も入るので必ずしも行が増える程、A列の値が大きいわけではありません。 3.C列の日付ですが、たとえば「2009/8/8」と入力したら、「2008.8.8」と半角で表示するようにしてるのですが、これを「2008.08.08」と半角で表示する方法はないでしょうか? 4.エクセルで時々、あるセルの左上端が緑色になり<!>と表示されています。この<!>を押すと、いろいろコメントがでてくるのですが、エラーを無視するを選ぶと、消えます。一体これは何なんでしょうか? 出ないようにする方法はないでしょうか? 以上の件、どれでもよいのでご回答くださいますようお願います。

このQ&Aのポイント
  • EPSON鳥取修理センターにEP713Aを修理依頼した際には正常動作していたが、最近再度「紙が詰まりました」という表示が出ており、コピーもできない状態が続いています。
  • 昨年修理した箇所であるCRスケールにグリスが付着し、グリスの除去作業が完了していますが、プリンター内のCRスケールが具体的にどの部分になるのかについて教えてください。
  • 購入からわずか数ヶ月で紙詰まりの問題が発生し、修理依頼後も同じ問題が続いています。CRスケールへのグリスの付着が原因とされていますが、具体的な解決策を教えてください。
回答を見る

専門家に質問してみよう