• ベストアンサー

空白と空白じゃないセルを判断するには?

いつもお世話になっております。 条件により別のセルへ文字列を入力するという物を組みたいのですが、あてはめるべき表現の仕方がわからなくて困っております。 例で申しますと、 D列とE列に文字列が入っていたり空白だったりするセルが存在します。 条件は 「D列に何かしらの文字列が入っていて(特に決まった形が無い)、E列は空白の時だけ、F列へ「■」と入力し、G列は空白とする。」 「それ以外の条件はすべて、F列は空白、G列には「□」と入力する」 と、いうようにしたいのですが、空白は Dim i As Long For i = 3 To Range("B65536").End(xlUp).Row If Range("D" & i).Value = "" Then のように表現すればよいのかと思ったのですが、 「空白ではない」場合の条件をどのようにすればよいのかわかりません。(その為、全文を作る段階へ進めておりません。)   |D|E|F|G 1|あ| |■| 2|あ|え| |□ 3| |か| |□ 4| | | |□ 「空白ではない」と判断するコードの書き方をお教えいただきたく、よろしくお願いいたします。 環境はWindowsXP、Excel2003です。

質問者が選んだベストアンサー

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

D列:入力あり、かつ、E列:未入力、→ F列:■ それ以外 → G列:□ '------------------------------------------- Sub test()  Dim i As Long  For i = 3 To Range("B65536").End(xlUp).Row    If Cells(i, "D").Value <> "" And Cells(i, "E").Value = "" Then      Cells(i, "F").Value = "■"      Cells(i, "G").Value = ""    Else      Cells(i, "F").Value = ""      Cells(i, "G").Value = "□"    End If  Next i End Sub '--------------------------------------------- 提示の表ではデータが一行目から始まってますが、 提示のコードでは、データが3行目から始まっているようになってますよ。 で、コードの方を尊重して、3行目からにしました。 以上、ここまで。  

saiwai
質問者

お礼

ご回答ありがとうございます。 全文お書きくださり、誠にありがとうございます! 先ほど実際に確認して、まさにやりたいことが出来ました! 実際に使用する表が3行目からスタートだったので、この状態で完璧です。 このような夜分にありがとうございました。 明日さっそく組み込んでみます!

その他の回答 (2)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

「空白ではない」のでしたら Range("D" & i).Value <> "" でいいと存じますが。  スペースが入っているだけは「空白」とみなすような場合でしたら、 Trim(Range("D" & i).Value) <> "" ということになりますか。  「空白」の場合と「空白ではない」場合で分岐させたいというような意味でしたら、 If Range("D" & i).Value = "" Then '「空白」の場合の処理 Else '「空白ではない」場合の処理 End If のようにします。

saiwai
質問者

お礼

ご回答ありがとうございます。 <>""でよかったのですね! 今日は一日職場でネット検索をしていてもまったくわからず苦慮しておりました。 こんな夜分にお答えいただき、ありがとうございました。

回答No.1

【F1】 =IF(AND(D1<>"",E1=""),"■") 【G1】 =IF(F1="■","","□") で良いのではないでしょうか?

saiwai
質問者

お礼

ご回答ありがとうございます。 マクロで動かす事が目的でしたのでご提案いただいた式が使えず、申し訳ありません。 このような夜分にお答えいただき、ありがとうございました。

関連するQ&A

  • 空白セルのある場合の計算

      A  B  C  D   E  F  G  H 1 (2)     (2)     空     (3) わかりづらいかもしれませんが、 =A1+C1+E1+G1 で、数字の合計を出したいのですが、###のエラーが出ます。 E1の空白セルに数字が入るとエラーはなくなります。 どうしたら空白を0とみなして計算できますか? (空白セルはどうしても空白じゃなきゃなりません) (B列D列F列は計算対象外の数字が入力されてます)

  • エクセルで空白セルを寄せたい

    エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・   A|B|C|D|E|F|G 1 あ い う え お か き 2 ○   ○ ○   ○ の表を   A|B|C|D|E|F|G 1 あ う え か  2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。

  • 空白セルのカウント方法

    どなたかご存じでしたら回答をお願いします。 【質問】 各列毎に●や★が任意の数がある8行のセルがあります。 各列毎に8行目から上に遡り、●までの間の空白のセルを数える方法が知りたいです。 但し、★も”空白の1つ”として数えます。 【入力】   A  B  C  D  E  F  G ・・・・ 1 ●        ★ 2       ●  ●  3       ★        ● 4             ★ 5              6 7                ● 8                   ● 【結果】  A B C  D E  F G ・・・  7 8  6  6  8  1 0 ※結果の説明 A:●の下には空白が7個。 B:●が無く空白が8個。 C:●の下に★があるが空白とみなして6個。 D:●の下に空白が6個。 E:★があるが空白とみなして8個。 F:●の下には空白が1個 G:●の下には空白が0個 使用するエクセルは2010です。 以上、よろしくお願いします。

  • 空白セルを飛ばして転記したい

    こんばんは。 またもやexcelで悩んでおります。どうぞご教授ください。 下のようなデータがあります。     A   B   C   D    E   F   G 1 山岡     山田  丸山  山岡  山田  丸山 2      平尾     南田  平尾  南田          3 ・ ・ A列からD列まで名前のデータがあり、空白のセルもあります。 E列からG列には、各行のA列からD列の名前を、空白セルを飛ばして表記したいのです。(詰めて表記したいです) 名前は各行とも0から3つまでです。 前回同様(QNo.4073079)行き詰ってしまいました。 よろしくお願いいたします。

  • 数式が入った空白のセルを合計するとき

    数式が入った空白のセルを合計するとき WINDOWS XP EXCELL 2003 です。 各セルの数式は C43 =SUM(B36-C36) D36 =SUMPRODUCT((入力!$C$2:$C$50=$A36)*(入力!$A$2:$A$50=D$1),入力!$E$2:$E$50) E36 =SUMPRODUCT((入力!$D$2:$D$50=$A36)*(入力!$A$2:$A$50=D$1),入力!$F$2:$F$50) E43 =SUM(C43+D36-E36) と数式がそれぞれに入っています。 ご教示を仰ぎたいのは D36,E36 に値がない空白のセルですがこの場合、E43 G43 I43 と表示(この場合 50,000)がされますがD36 若しくはE36に値が表示されたときのみにE43 を表示したいのですが可能でしょうか。 目的は見やすくしたいのですが。 ご指導いたたければ幸甚の至りです。

  • 数式で空白にしたセルについて

    もともと空白だったセルD1とE1があって、F1に「=D1*E1」と 数式を立てるとF1には0が表示されます。 しかし、D1に例えば「=IF(B1="","",VLOOKUP(B1,$G$1:$N$5,2,FALSE))」 という数式を入れD1を空白にすると「=D1*E1」の数式があるF1には #VALUE!のエラーがでます。 D1に返された""は、通常の空白という意味とは違うのでしょうか? また、通常の空白セルとは0(ゼロ)が設定されているのでしょうか? ご存知の方教えて頂けますでしょうか

  • (MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法

    (MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法 たとえば、A1,B1,D1,G1は何らかの文字列が入力されていて、C1,E1,F1が空白セルだとします。 「入力規則」の「リスト」で、「元の値」にA1:G1を指定した場合は、空白もリストされてしまいます。 空白を表示させたくないのですが、作業セルに空白以外をリストさせて元の値とする、という方法は使いたくないです。 調べたところ、名前の定義方法で実現できるみたいですが、良く解りませんでした。

  • 空白でないセルの値を返す方法について

    空白でないセルの値を返す方法について いつもお世話になっております。 A   B   C   D   E   F   G 名前 住所  あ          あ A~Cは入力は固定です。 D~Gは可変で月毎に入力しなおします。 10月はFに入力、11月はDに入力…みたいな感じでどこか1箇所に入力します。 上記の内容の表でD~Gの入力してあるセルを検索してCに反映させてたいのですが、上手く行きません。 COUNT、COUNTAは空白以外のセルの個数を返しますが、空白以外のセルの値そのものは返しません。 MATCHやINDEXも見ましたが、上手くイメージできません。 お詳しい方、お教えいただければと思います。

  • 入力された●から●迄の空白をカウントする方法

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  各列毎に●や▲が任意の数がある8行のセルがあります。  8行目の任意列に●を入力した場合、  そこから上に遡って●までの間の空白のセルを数える方法が知りたいです。  但し、▲も”空白の1つ”として数えます。 【入力】    A  B  C  D  E  F  G …  1 ●  ●         2        ●  ▲ ● ▲   3     ▲ ●       ▲  4                5  6  7   8 ●  ● ●               【結果】  A B C D E F G・・・   6 6 4 0 0 0 0 ※結果の説明 A:8行目の●から上に数えて●迄の空白は6個。 B:8行目の●から上に数えて▲がありその上に空白と●があるが、▲を空白とみなして6個。 C:8行目の●から上に数えて最初の●迄の空白迄は4個。 D:8行目に●は無いため、空白は0個。 E:8行目に●は無いため、空白は0個。 F:8行目に●は無いため、空白は0個。 G:8行目に●は無いため、空白は0個。 使用するエクセルは2010です。 以上、よろしくお願いします。

  • VBA A1セルが空白になったら隣のセルも空白に

    いつもお世話になります。 WINDOWS7 EXCELL2010 です。 A1セルに文字列で5桁のID番号を入力するとI4のセルに今日の日付が入るようにマクロを作っています。 このときA1セルをキーボードのBacksPaceでID番号を消してエンターキーを押した時にI4セルも空白にしたいと考えて下記のように作りましたが If Range("A1") = “” Range("$I$4") = "0000/00/00" Else Range("$I$4").ClearContents 上の構文が上手くゆかず困り果てました。 どのようにすればいいか御指導願えませんでしょうか。 参考に Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Range("I4").Value = Date If Range("A1") = “” Range("$I$4") = "0000/00/00" Else Range("$I$4").ClearContents End Sub

専門家に質問してみよう