• ベストアンサー

IF関数などを使って条件に合った「行」を削除するような機能はありますでしょうか?

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

(1)関数による解決 基本的なことを覚えておいてください。 「エクセルの関数では、行、列、シートの挿入や削除 は行えません」 あとセルに色を付ける(変える)とかも出来ません。 その理由は、エクセルは「セルに関数は値を返す」もので 、それにエクセルが限定しているからです。 関数は、VBAで、オブジェクトとかプロパティとか言われるもののなかで、セルのプロパティの「Value」だけを扱うものです。 別シートに、「元のセルに「完」の入った行」を除いて、その他の行を持ってくることは可能です。(注) (2)VBAでは行削除が可能です。 ActiveCell.EntireRow.Delete Sub test02() d = Range("A1").CurrentRegion.Rows.Count For i = d To 1 Step -1 If Cells(i, "c") = "完" Then Rows(i).EntireRow.Delete End If Next i End Sub (3)手操作によって実現することは、ご存知可能です。 (注) Sheet1のA1:C6に 山田 福岡市 1 大山 熊本市 完 1 山下 島原市 2 上野 宮崎市 3 野上 鹿児島市 4 上原 大分市 完 4 といれて(上記」D列は初め空白) D列D1に =COUNTBLANK($C$1:C1)と入れてD6まで複写。 上記のようになる。 Sheet2のA1に =OFFSET(Sheet1!$A$1,MATCH(ROW(),Sheet1!$D$1:$D$10,0)-1,0)と入れてA4まで複写。 B1に=OFFSET(Sheet1!$A$1,MATCH(ROW(),Sheet1!$D$1:$D$10,0)-1,1)といれてB4まで複写。 結果Sheet2に 山田 福岡市 山下 島原市 上野 宮崎市 野上 鹿児島市 式を複雑にしないための部分があります。なぜB4までか、なぜ$D$10までなのか問わないでください。

noitigo
質問者

補足

ごアドバイスありがとうございますm(_ _)m >(2)VBAでは行削除が可能です。 ActiveCell.EntireRow.Delete Sub test02() d = Range("A1").CurrentRegion.Rows.Count For i = d To 1 Step -1 If Cells(i, "c") = "完" Then Rows(i).EntireRow.Delete End If Next i End Sub コードに関して質問してはダメでしょうか? これをこのまま貼り付けた場合、どういった表の配列の場合なのでしょう? それだけ教えて頂きましたら、あとは「どの個所をどう変えたらどうなるか…」とかは自分で実験してみます。 お願いしますm(_ _)m

関連するQ&A

  • EXCELの条件付書式、IF関数につきまして。

    お世話になります。 EXCELで一つの行において、計という文字が含まれるものだけ セルの右端に表示させる方法をお教えいただきたく。 それ以外は左端に表示。 現在は全てセルの左端揃いで文字が表示されております。 条件付書式、IF関数などを利用することによって可能でしょうか? どうぞよろしく御願い申し上げます。

  • IF関数の条件に関数を指定

    Excelに関する質問です。 ちょっと分かりづらいのですが、例えばセルA1とB1があるとします。 A1には別シートのセルが参照されています。(「="あ!A1"」など) ここで、B1にはIF関数を入れたいのですが、その時A1の関数式内の文字を条件にしたいのですが、そういうことはできますか? つまり、B1にIF関数で「A1セル内の関数式内に"あ"の文字がある時に"い"と表示する」のようにしたいのです。 普通に「=IF(A1="あ","◯","")」ではできません。 Google先生でも調べてみたのですが、分かりませんでした。 お知恵をいただければ幸いです。

  • エクセルで、セルに「合格」という文字が入ったら、そのセルの入った行全体に灰色の網掛けがかかるようにできますでしょうか?

    ほぼタイトル通りなのですけれど、 エクセル(97)であるセルに「合格」という 文字列が入りましたら、そのセルの入った 行全体(表の中の事なので表の中のみ)に灰色の 網掛けがかかるようにできますでしょうか? 「条件書式」を使いますと、一つのセルに「合格」と 入りますと、そのセルのみに網掛けがかかってしまうようですし、行全体に網掛けがかかる方法を探しています。。 何か機能を組み合わせていい方法はないでしょうか?

  • 条件付き書式:1行おきに色⇒手動で塗りつぶしは?

    エクセルで見やすくするために、条件付き書式で1行おきにセルの色を変えることがよくあります。 その後、特定のセルを目立たせるために別の色にしたいときがあり、「塗りつぶし」をクリックしても、条件付き書式が優先されるので色が変わりません。その対策として ・塗りつぶしの代わりに文字の色を変える⇒ブランクのセルを目立たせたいときには使えない ・ほかの条件付き書式で適当な数式を入れて、優先順位を高くし、別の色を設定する⇒面倒 ・塗りつぶしの代わりに網掛けを使う⇒やはり面倒 どれも微妙です。 理想は条件付き書式で1行おきに色を変える設定は残しつつ、手動で塗りつぶしをクリックしたら色が変わる、というものですが、おそらくそれは無理だと思っています。 何かうまい方法がありましたら教えていただきたいです。よろしくお願いします。

  • エクセル。行を挿入すると、関数が反映されない

    とても困っているのでどうかお願いします。 たとえば、ある列にエクセル関数を挿入したとします。 今回私が挿入したのはIF関数でした。=IF(C1="","",10)をC1に入れて、それより下は、C2,C3,,とドラッグしていきました。 その途中に行を挿入したとき、たとえば15行目に挿入したとき、理想は勝手に 。=IF(C15="","",10) となってくれることです。しかしやってみると、実際にはそうなっていません。 関数は全く入っておらず、空欄になっています。 これでは、行を挿入するたびに関数をまた入れなおししないといけないということでしょうか? マクロなどでしか解決できないのでしょうか?(それとも条件付書式などで、列そのものに挿入するのでしょうか?) ちなみに条件付書式の場合、どこかからセルを貼り付けするとき、値のみにしないと、そのセルの書式も変更されてしまいますよね?だからあまり使いたくないのですが、、、 どなたかご存知の方はどうかお願いいたします。

  • 結合セルでの条件付き書式の方法

    エクセルで結合セルの条件付き書式の方法について教えていただけたら幸いです。 Excel2010を使用しております。 カレンダーを作成しようと、月によって曜日が自動で入力されるように設定をし、特定の曜日や祝日に網掛けをするように設定をしました。 (網掛けは条件付き書式で特定の曜日はWEEKDAYの数式、祝日はCOUNTIFの数式を使って設定しました) 添付画像ですと例えばA8とA9、B8とB9がセルの結合してあるのですが、網掛けが適用されるのが8の行だけで9の行には網掛けが適用されません。 セルの結合で空データのためそのようになっているのかとは思いますが、8の行、9の行ともに網掛けをするように設定することはできないのでしょうか? 回答よろしくお願いいたします。

  • エクセル IF関数が入った条件付き書式について

    エクセルにおいて、セルA1、B1、C1があるとします。A1、B1には数値が何も入力されていない状態で、C1に計算式「=SUM(A1)/B1」が入っているとします。このままでは、C1は、「#DIV/0!」と表示されます。 この表示を消すために、C1にIF、ISERROR関数を使い、「=IF(ISERROR(SUM(A1)/B1),"",SUM(A1)/B1)」の計算式を入力します。 このままでもいいのですが、C1の値が「10以上」になった時に、C1のセルに色を付けたいのです。 書式→条件付き書式→セルの値が→次の値以上→10 にすると、セルに何も値が入っていない(空白)状態で色だけが付いてしまいます。 色々調べると、IF関数の""の空白が文字列のため、数値より大きいとみなされている事が原因っていうことは、分かりましたが、色々試してみても出来ません。何かいい方法はございますでしょうか? ご教授お願いします。

  • 空白セルのある行を削除する関数をご教示下さい。

    空白セルのある行を削除する関数をご教示下さい。 ただし、条件付で、特定の列の空白セルに該当する行しか削除しない という条件付の関数を作成したいと考えています。 文章だけでは分かりにくいため、図を添付します。 エクセルに詳しい皆様の回答を心よりお待ちしています。

  • エクセルの条件付き書式について

    こんにちは。 エクセルである行に「一つ上のセルと同じ値であればセルに色をつける」 という条件付書式を設定しています。 重複セルを発見するために設定しているのですが、 同じ内容のデータは必要ないので、色がついたセルのある行は削除することになります。 すると、それより下の行のセルに設定してあった条件付書式が機能しなくなってしまいます。 設定してある条件付書式はA2なら 「セルの値が、次の値に等しい、A1」という感じです。 これでA2のある2行目を削除してしまうと、元3行目で2行目に繰り上がったA2の条件付書式が 「セルの値が、次の値に等しい、#REF」となってしまい機能しません。 絶対参照にしているわけでもないので、 「自動で補正してくれないのかなぁ?」と思っているのですが どこかにそういう機能があるのでしょうか? 勉強不足の為どうしてよいかわからずみなさんに教えていただきたく 質問させていただきました。 よろしくお願いいたします。

  • 条件付書式 if関数 を利用する

    条件付書式 if関数 を利用する おはよう御座います。 条件付書式でIF関数を利用したいです。 =if(and(e4>=10,L4>=50),"1","") e4が10以上で L4が50以上ならば そのセルに色をつける場合の公式を教えて頂きたいのですが? ,"1","") この部分が間違っていると思うのですが???