エクセルでデータが入っているか判別したい

このQ&Aのポイント
  • エクセルで大量(3000項目程度)のデータが入っているか判別する方法を知りたいです。
  • エクセル2003で3000行のデータが入っているか確認する方法を教えてください。
  • エクセルのセルにデータが入っているかどうかを判別する方法を教えてください。
回答を見る
  • ベストアンサー

エクセルでデータが入っているか判別したい

エクセルでデータが入っているか判別したい こんにちは 予期せぬ事態に困惑しています。 エクセルで大量(3000項目程度)のデータを、B1~B3000のセルに入れました。(これは、別のファイルから読み込ませたものです。) ちなみにこのデータは虫食いで色々なところに空白があります。 その為B1~B3000のどこににデータが入っているかを確認するためA1に =if(len(A1),1,"") と入れ連続コピーでA3000まで引っ張りました。(最終的にはvlookupで並び替えようと考えています) しかし、2000を越えたあたりで空白でも関係なく全て1が入るようになってしまいました。 これはエクセルの限界を超えたってことでしょうか? もし限界でしたら解決策を教えていただけませんか? (自分はマクロはほとんど使えませんので、マクロ以外解決できないのでしたら具体的なソースを乗せていただけると幸いです) ちなみに使用しているのはエクセル2003です。 よろしくお願いします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

B列にデータが入っているかどうかをA列にLEN関数を使ってチェックしていますがLEN関数のみではB列のセルで空白のスペースなどがあればカウントされますね。 B列のデータがB2セルから下方に表示されているとします。 そこでA2セルに次の式を入力して下方にオートフィルドラッグすればよいでしょう。 =IF(LEN(TRIM(B2))>0,MAX(A$1:A1)+1,"") これでデータの入力されているセルには上から1,2,3のように番号が付けられます。空白の入ったセルはカウントされません。 これでB列に有るデータの数が表示されますし、番号を使ってデータのある行だけを取り出すことも容易になりますね。

osarusan0214
質問者

お礼

ありがとうございます!! なるほどできました。 なるほど! 空白を除いてから探すわけですね!! この考えはなかったです。 とても参考になりました!! ありがとうございました!! とても助かりました!!

その他の回答 (2)

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.2

データ有無のチェックならフィルターを掛けます。 [有効な列名の範囲指定から [データ]-[フィルター] これで行頭の各セルにフィルターマークの▼マークがつきます これをクリックするとその列のデータの一覧(同一データある時は1つだけ) 一覧の最後の空白のチェックを外すと 空白行を除いた一覧が表示され印字もできますが 範囲指定で他のセルへコピペしても空白行も対象になり 意味がありません。

osarusan0214
質問者

補足

返答ありがとうございます。 う~ん、相変わらず上手に説明ができずすみません;; フィルターは分かりますが、それだと別で使用するのが難しいので別の方法でお願いします^^; 今回は「LENで」空白のチェックを行い、数式が入っていても空白の場合、何も表示されず、何か入っていた場合1を表示する。 これを3000行おこなったが、2000行までは正常に上記を実行してくれるが、2000行を越えると何故か空白でも1を表示してしまう。 これは何故ですか? また、マクロや別の数式によりこれを行うことができませんか? というか、そもそもLENの使い方が正しいですか?

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 外していたらごめんなさい。 3000行程度であればまったく問題ないと思います。 B列のデータが見た目には何もなくても、仮に空白(スペース)がある場合は空白も1文字と判断されますのでそのようなことが起こる場合があります。 試しにC列全てを範囲指定して列を挿入(列番号のC上で右クリック → 挿入)してみてください。 C1セルに =TRIM(B1) として、C1セルのフィルハンドルでダブルクリック。 このC列を参照してお示しの数式で確認してみてください。 もしこれで「1」が表示されなくなると「空白」があったということになります。 以上、一例ですが参考になれば幸いです。 的外れなら読み流してくださいね。m(__)m

osarusan0214
質問者

補足

ご返答ありがとうございます すみません。説明が下手で^^; B列には数式?(外部エクセルファイルからの引用)が入っています。 ちなみにその元データの方は数式が入っています。 1~2000行と2001~3000行も同様の方法でデータを入れてあるのですが、なぜか1~2000行は空白は空白として取り扱ってくれるのですが、2001~3000行は空白を空白として取り扱ってくれないのです;; ちなみにLENで指定したセルの数式を消すと空白として読み取ってくれることは確認しました^^

関連するQ&A

  • 「エクセルでのデータ検索」について

    「エクセルでのデータ検索」について 基本的な質問ですいません。 エクセルで、以下のようなことをしたいのですが・・・ 【シートA】   A  B  C  D E 1   ○ △ □ ◇ 2 あ ※ ※ ※ ※ 3 い ※ ※ ※ ※ 4 う ※ ※ ※ ※ (※は任意の数値) このとき、【シートB】に以下のように「◇」「う」と入力すると “B2”欄に【シートA】の“E4”(=「◇」と「う」の交差する位置) の値が出るようにしたいのです。  【シートB】   A  B  C  D E 1   ◇ 2 う 3 4   ちなみに【シートB】に入力する値はその都度変わるので、VLOOKUPや INDEXではうまくいきませんでした。 実際は長めのマクロで行っている作業の内の一部ですので、「関数」でも 「マクロ」でも、どちらでも対応できます。 ご教示のほど、よろしくお願いいたします。   

  • エクセルの異なるデータについて

    エクセルの異なるデータについて 2つのデータに差異があります。(氏名、生年月日、会員番号などのリストです) Aのエクセルには、389件のデータ。Bのエクセルには684件のデータ。 重複しない295件を取り出すには、どんか関数を使えば出来るのか教えて下さい。 VLOOKUPかとも思ったのですが、うまく出来ませんでした。

  • エクセルで、書き換えられるデータを残したい

    エクセルで、次のマクロを作っていただけませんか。 日々変わるデータだから、その時のデータを記録したいのです。 ボタンを押すと(ボタンの設定は出来ます)、 「sheet1のE5」のデータを「sheet3のA2」に 「sheet1のF8」のデータを「sheet3のB2」に 「sheet1のF10」のデータを「sheet3のC2」に (ここまでなら何とか・・という気もするのですが、この先がさっぱりです) もう一度ボタンを押すと、 sheet3のA列の空白(この場合A3ですね)から、前記のように。 もう一度ボタンを押すと、 sheet3のA4からと記録していきたいのです。 よろしくお願いいたします。

  • エクセルでVLOOKUP関数を使用すると、データ数が多くてフリーズしてしまいます。

    エクセルでVLOOKUP関数を使用すると、データ数が多いくてフリーズしてしまいます。どうにかして解決できないでしょうか。 エクセルでVLOOKUP関数をしようして、データ数が多いとフリーズしてしまうのですが、何か解決方法ありますでしょうか。 エクセルでVlookUpを使い、Sheet1にsheet2から一致したデータを読み込もうと思うのですが、 データが重くなりすぎて、PCがフリーズしてしまいます。 どうにかして、簡単にVlookupと同じように一致したデータを抽出することはできないでしょうか。 sheet1では B列を入力して、C列を抽出したいです。 A列_____ ___B列_____ _____ _____ _____ ___C列 No_____ 入力項目_____ _____ _____ _____ 保存場所 1_____ #EXTINF:213,08___________ suzuki I:\music\suzuki 2_____ #EXTINF:223,08___________ satou U:\music\satou 2_____ #EXTINF:223,121__________kondou G:\music\kondou ↑ =VLOOKUP(B2,sheet2!$A$2:$B$40000,2,FALSE) =VLOOKUP(B3,sheet2!$A$2:$B$40000,2,FALSE) =VLOOKUP(B4,sheet2!$A$2:$B$40000,2,FALSE) sheet2のデータは A列_____ _____ _____ _____ ____B列 項目1_____ _____ _____ _____ 保存場所 #EXTINF:213,08_____ #suzuki I:\music\suzuki #EXTINF:223,08_____ #satou U:\music\satou #EXTINF:223,121____#kondou G:\music\kondou

  • Excelのマクロについて

    分かる人がいれば、教えてください!! Excel上のセル(A1~A10)をクリックしたら"○"をB1~B10のセルをクリックしたら"×"になるようなマクロを作りたいんですけど、どうすれば良いのでしょうか? ちなみに例えばA1~A10に○がついていて、そのA列のどれかをクリックしたら空白になるようなマクロもお願いします。 大変困っているのでよろしくお願いします。

  • エクセル変換したデータは文字認識されないのでしょうか?それとも、関数がおかしい?

    WindowsXPで、アクセス97と、エクセル97を使っています。 教えてください! アクセス97で作成したテーブルのデータをアクセスのマクロ「エクセル変換」を使って、エクセルに落とします。 そして、エクセルシートで、VLOOKUP及び、SUMIFを使って集計表を作成したいのですが、#N/Aエラーになってしまいます。VLOOKUPの使い方→「=VLOOKUP(B4,[工場実績報告.xls]Date!$J:$M,4,FALSE)」は、よいと思うのですが・・・もしかして、関数も間違っているのでしょうか? 「#N/A」が出てしまうということは、アクセスからエクセル変換されたデータが、エクセルの中で文字認識されていないということでしょうか? だとしたら、どのようにしたら、エクセルで文字認識をさせることができるのでしょうか? VBAの知識がないので、関数でやろうとしていますが、もし、何かVBAで良い方法があったら、そちらでもよいので、詳細に教えていただきたいかと・・・ すみませんが宜しくお願い致します。

  • Excelでデータ加工

    Excel2000です   A  B 1 100 120 2 300 3 50 80 4 150 5 250 6 200 300 と表があるとします このA列の空白にB列の値をコピーしたいと考えています 【完成形】   A  B 1 100 120 2 300 300 3 50 80 4 150 150 5 250 250 6 200 300 オートフィルタで空白を抽出し、コピー&ペーストしてみましたがうまくいきませんでした データは5000件ぐらいありますので、手作業ではなく、できれば関数や機能で行いたいのですが(マクロに疎いので)何かいい方法はありませんでしょうか?

  • 色の条件で判別し、シートを分けたい

    アンマッチングデータなので、データが1対多になっています。 (一番上のデータ 対 その下の空白までのデータ) 1とnのデータをそれぞれのシートに分けて保存したいと考えています。 ★色を番号で判別して、同じデータをフィルタオプションしてコピー とマクロを作りましたが、、、、色番号の判別も行を指定してるので空白行は-4142になるし、別のシートにコピーしてから色判別の行を削除するなどしてるのでマクロ時間が多少長くなるかと。。 いい方法がありましたら教えてください。 よろしくお願いいたします。 ■元データ    A 1 いいい  ←1 (必ずピンク色) 2 いいい  ←n (必ず水色) 3 いいい  ←n (必ず水色) 4 空白 (白:色はつけていません) 5 ううう  ←1 (必ずピンク色) 6 ううう   ←n (必ず水色) 7 ううう   ←n (必ず水色) sheet4 へ 1と5のデータをコピー(テキストのみ貼付)  sheet5 へ nのデータをコピー(テキストのみ貼付) 区切りの空白行はとくに必要ではありません。

  • 別excelのデータを引き出す時に、そのexcel名称を可変にしたいと思っています。

    別excelのデータを引き出す時に、そのexcel名称を可変にしたいと思っています。 なるべくマクロを使わないで出来るでしょうか? 例: =VLOOKUP(A1,[B.xls]Sheet1!$A$1:$E$10,4,FALSE) という関数を指定したとします。 [B.xls]Sheet1 この部分をセルA1に入れて、内容を変更することで 引き出し元のファイル&シートを変えたいと思っています。 つまりA1のセルの値を[C.xls]Sheet2にすることで、C.xlsファイルのSheet2からデータを引っ張って来たいのです。 出来るでしょうか? ご存知の方いらっしゃいましたら、宜しくお願い致します。 環境は OS:WINDOWS98 EXCEL2000 です。

  • エクセル if以外の関数で判別したいです。

    Excelで関数を利用して、判別したいです。 できればIF関数を使用せずに判別したいです。 AとBが等しくかつA(B)よりCが大きいかどうかを判別したいです。 [100][100][200][ture] [300][200[500][false] [400[300[100[ture] [200[200][100][false]

専門家に質問してみよう