エクセル上でA列に関数が入っていて、A列を値複写でB列にコピーしたケースについて

B列上で空白のセルを選択しようとして「編集」→「ジャンプ」→「セルの選択」
→「空白のセル」の操作を行うと、該当なしとなってしまいます
空白部分のセル上で「Del」キーを操作したあと再度「編集」→「ジャンプ」→「セルの選択」→「空白のセル」の操作をしたところそのセルが選択されました
ので、見た目は空白でも実際は空白でない状態になっていると思われます
B列上の見た目の空白セルが部分部分にあるため、1つ1つ「Del」キー操作をするには大変な労力がいります。
簡単にB列上の見た目空白セルを選択する方法はないでしょうか

このQ&Aに関連する最新のQ&A

A 回答 (4件)

値貼り付けを行うと、見た目の空白セルは文字列属性で長さゼロ。


未入力(DELで消した場合も)セルは数値属性のようです。
質問で探したいのは、文字属性を持った長さゼロのセルになります。
ちなみに、算式であるA列もB列と同じ属性ですね。(下記マクロは算式は見た目の空白セルとして出力しません)

下記マクロを作ってみました。質問の見た目の空白セルを表示します。(選択状態にします。削除はDEL1回で済みます)調べたいセルを複数選択してMitameKuuhakuを実行します。選択セルは離れていてもかまいません。ショートカットキーを割り当てれば操作しやすいかもしれません。

ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュールで標準モジュールを挿入し、
そのコードウインドウに貼り付けます。

Public Sub MitameKuuhaku()
 Dim KuuhakuCot As Long '見た目の空白セルのカウンタ
 Dim rg As Range '検索するセル
 Dim ANS_rg As Range '検索結果の見た目の空白セル

 For Each rg In Selection
  '文字属性を持った長さゼロ
  If Application.IsText(rg) = True And Len(rg) = 0 Then
   '式が登録されていて結果が長さゼロは除く
   If Len(rg.Formula) = 0 Then
    KuuhakuCot = KuuhakuCot + 1
    If KuuhakuCot = 1 Then
     Set ANS_rg = rg
    Else
     Set ANS_rg = Union(ANS_rg, rg)
    End If
   End If
  End If
 Next

 '結果の出力
 If ANS_rg Is Nothing Then
  MsgBox "見た目の空白セルはありません"
 Else
  ANS_rg.Select
 End If
End Sub
    • good
    • 0
この回答へのお礼

遅くまでお考え頂きありがとうございます。教えて頂いた手順を実施したところうまい具合に見た目空白セルが選択状態になり1回の「Del」操作で済みました。
さすが、nishi6さん!他の質問に対する回答のマクロも見せて頂きましたが、いとも簡単にマクロを組んでいますよね。私も最近マクロの便利さを思い知り、何とか覚えようとしているところです。本当に助かりました。ありがとうございます。

お礼日時:2001/07/26 08:45

こんにちは



 以下の手順でいかがでしょうか?

1.データが入っている列番号Bをクリックして、B列を選択
2.メニュー[データ]-[区切り位置]
3.[完了]ボタンをクリック

参考URL:http://www2.odn.ne.jp/excel/waza/edit.html
    • good
    • 0
この回答へのお礼

早々の回答ありがとうございます。教えて頂いた手順で実行してみたところ、変化はおきませんでした。 2.メニュー[データ]-[区切り位置] のあといきなり3完了でいいのでしょうか?

お礼日時:2001/07/26 08:20

こんにちは!


たぶんこれは、A列の数式で""を返しているものがある
のだと思います。

>A列に関数が入っていて、A列を値複写でB列にコピー
B列に貼り付けられたものが数値であれば、""だけは文字
扱いなので B列範囲を選択後
 [Ctrl]+G セル選択 「定数チェック 文字以外OFF」
で選択可能です(選択後DEL)
    • good
    • 0
この回答へのお礼

早々の回答ありがとうございます。A列には、文字or空白が入っているせいか、
教えて頂いた方法ではうまくいきませんでした。 [Ctrl]+セル選択がキーとなる
と思いますので、いろいろチャレンジしてみます。

お礼日時:2001/07/25 20:10

「見た目空白セル」にはスペースが入っているのではないでしょうか?


もしそうであれば、B列で範囲指定して編集→置換で「スペース」を「何も書いていない状態」に全置換してやればジャンプからの選択が可能になります。

的はずれてな回答でしたらごめんなさいね。
    • good
    • 0
この回答へのお礼

早々の回答ありがとうございます。早速試してみましたが、選択はできませんでした。スペースが入っているのではなかったようです。

お礼日時:2001/07/25 17:50

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelで「A列で任意のグループ」「B列は空白以外」「C列は空白セル」の数

さきほど、質問をした者です。
回答を締め切った後で、追加質問がありますので、新たに質問させていただきます。(たびたびスミマセン)

Excelで「A列で任意のグループ」名、かつ、「B列は空白ではないセル」、かつ、「C列は空白セル」の件数を出したいのです。 (オートフィルタではなく。)

=SUMPRODUCT((A3:A271="グループ名")*(B3:B271="▲▲▲")*(C3:C271=""))

という式を作ったのですが、「B列の空白以外」という条件にする"▲▲▲"の部分はどうすればいいのでしょう?

Aベストアンサー

B3:B271<>""

Qエクセル セルの結合(A列,B列→A列に結合)の操作

現在、大量の人名を編集しています。

A列に名字、B列に名前が入力されている状態なのですが、A列に名字と名前を一緒に表示させるためには、どのようにすればよいか教えて下さい。

Aベストアンサー

C列に「名字+氏名」を表示させるなら、C1セルに
 =A1&B1
と入力して、下方向にコピーすれば良いです。

名字が入力されているA列の値を「名字+氏名」で置き換えるのは関数ではできません。
どうしても置き換えたいなら上記で説明した方法で表示された「名字+名前」をコピーして、A1に「編集」→「形式を選択して貼り付け」→「値」で貼り付けるという方法はありますが…

QA列が空白なら、計算式の入っているB.C・・~列も空白で表示する方法。

A列に対して、B.C・・~列にそれぞれ違った式が入っています。
A列が空白だと、B列#N/A、C列1 ・・・と、それぞれ答えが返ってきます。
今までは、各B、C・・列に「A列が空白の場合は表示しない」設定を「条件付書式」を使ったり「IF(ISERROR・・」の関数を使ったり
無い知恵と知識を振り絞って悪戦苦闘の末、1列1列・・こつこつ設定していたのですが
「もっと簡単な方法があるのでは??」と都合のいいことを考えました。

しかし、恥ずかしながら私には知識が無いもので、そんな事が出来るのか、また仮に出来るとしても方法がわかりません。
関数でも、条件付書式でも、何でもかまいません。
指定したセルが空白の場合、そのセルに対して数式が入っている他の複数セルにも何も表示しないように一発で出来るようにするには、
どうすればいいのか教えて頂けませんか?
98です。出来るだけ簡単な方法がありがたいです。
余談なのかもしれませんが、B列にはVLOOKUPの関数、C列には「A列内の数字+1」と言う式が入っています。
C列はA列に0と入力しても、空白でも1という答えが返ってきてしまいます。そこでA列が空白の場合答えが表示されないようにしたいのです。)
宜しくお願いします。

A列に対して、B.C・・~列にそれぞれ違った式が入っています。
A列が空白だと、B列#N/A、C列1 ・・・と、それぞれ答えが返ってきます。
今までは、各B、C・・列に「A列が空白の場合は表示しない」設定を「条件付書式」を使ったり「IF(ISERROR・・」の関数を使ったり
無い知恵と知識を振り絞って悪戦苦闘の末、1列1列・・こつこつ設定していたのですが
「もっと簡単な方法があるのでは??」と都合のいいことを考えました。

しかし、恥ずかしながら私には知識が無いもので、そんな事が出来るのか、また仮...続きを読む

Aベストアンサー

ご質問の「もっと簡単??」、「一発で出来る」という事と解釈して回答しますので、相違していれば読み捨て下さい。
(1)対象範囲を選択
(2)選択された状態で数式を入力、完了時にctrl+enterキー同時に押下して下さい。
   一例ですが以下のようになります。
   =IF(セル<>"",VLOOKUPやセル+1の数式,"")
   セルが""(空白)でなければ数式を実行、空白ならば空白を設定。
為参考.B列はVLOOKUP関数の為、検索値が見つからない場合は#N/Aが戻りますので、IF(COUNTIF(検索範囲,A1),VLOOKUP数式,"")とする方法もあります。

Qエクセルで、ある列に不規則にある「連続した空白セルの最後尾セル」に空白の数を表示したい

エクセル(2003)を使ってます。

下のような表があるとします

   A       B
1  年月日  鈴木太郎
2  2008/1/1   鈴木
3  2008/1/2     
4  2008/1/3   鈴木
5  2008/1/4     
6  2008/1/5     
7  2008/1/6     
8  2008/1/7     
9  2008/1/8   鈴木

      ↓     


   A       B
1  年月日  鈴木太郎
2  2008/1/1   鈴木
3  2008/1/2    1
4  2008/1/3   鈴木
5  2008/1/4     
6  2008/1/5     
7  2008/1/6     
8  2008/1/7    4
9  2008/1/8   鈴木

B2~B9(実際にはB1500くらいまで…)の"鈴木"と"鈴木"の間にある連続した空白セルの
最後尾セルに空白の数を表示したいのです。
※ちなみにB列は同じ名前"鈴木"しか入ってません。

ご指導のほうよろしくお願いします。m(_ _)m

エクセル(2003)を使ってます。

下のような表があるとします

   A       B
1  年月日  鈴木太郎
2  2008/1/1   鈴木
3  2008/1/2     
4  2008/1/3   鈴木
5  2008/1/4     
6  2008/1/5     
7  2008/1/6     
8  2008/1/7     
9  2008/1/8   鈴木

      ↓     


   A       B
1  年月日  鈴木太郎
2  2008/1/1   鈴木
3  2008/1/2    1
4  2008/1/3   鈴木
5  2008...続きを読む

Aベストアンサー

とりあえず、今思い付いた内容を回答します。

「Sheet1」のシートが当質問の変換前の表であるものとします。

・「Sheet2」のシートを準備し、A1セルに下記式を入力後、「Sheet1」にデータがある範囲までA1の式を下及び右にコピーします。
 =IF(Sheet1!A2="","",ROW())

・「Sheet3」のシートを準備し、A1セルに下記式を入力後、「Sheet1」にデータがある範囲までA1の式を右にコピーします。
 =IF(Sheet1!A1="","",Sheet1!A1)

・「Sheet3」のA2セルに下記式を入力後、「Sheet1」にデータがある範囲までA2の式を下及び右にコピーします。
 =IF(Sheet1!A2="",IF(Sheet2!A2="","",Sheet2!A2-MAX(Sheet2!A$1:Sheet2!A1)-1),Sheet1!A2)

・「Sheet3」のA列の書式は、当該の日付形式に設定します。

「Sheet3」のシートが当質問の変換後の表になります。

こんな感じではいかがでしょうか。

とりあえず、今思い付いた内容を回答します。

「Sheet1」のシートが当質問の変換前の表であるものとします。

・「Sheet2」のシートを準備し、A1セルに下記式を入力後、「Sheet1」にデータがある範囲までA1の式を下及び右にコピーします。
 =IF(Sheet1!A2="","",ROW())

・「Sheet3」のシートを準備し、A1セルに下記式を入力後、「Sheet1」にデータがある範囲までA1の式を右にコピーします。
 =IF(Sheet1!A1="","",Sheet1!A1)

・「Sheet3」のA2セルに下記式を入力後、「Sheet1」にデータがある範囲...続きを読む

QExcel2013 VBA A列とB列の文字をA列とB列とC列に移動させる方法

A列とB列に文字が入っているのですが、下記のようにA列とB列とC列に文字を移動させたいです。
(A列の数字は必ず奇数のA列に入っています。)
VBAのコードを教えて下さい。

例えば
A1 1  B1 cat
A2 空白 B2 猫
A3 空白 B3 dog
A4 空白 B4 犬
A5 2  B5 whale
A6 空白 B6 クジラ
A7 3  B7 rabbit
A8 空白 B8 ウサギ

とデータがある場合

A1 1  B1 cat  C1 猫
A2 空白 B2 dog  C2 犬
A3 2  B3 whale  C3 クジラ
A4 3  B4 rabbit C4 ウサギ

としたいです。

実際、データは、A5196まであります。

Aベストアンサー

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

少しは短縮できると思います。m(_ _)m

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeB...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報