• ベストアンサー

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

エクセル(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

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

  • ベストアンサー
  • saburo0
  • ベストアンサー率35% (76/216)
回答No.5

とりあえず、今思い付いた内容を回答します。 「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」のシートが当質問の変換後の表になります。 こんな感じではいかがでしょうか。

umahiro
質問者

お礼

スゴイ!!(゜▽゜) やりたかったことが出来ました!! ズバリのご回答ありがとうございました!m(_ _)m

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

その他の回答 (4)

noname#204879
noname#204879
回答No.4

   A     B   C  D   E   F   G  H  I 1 年月日  鈴木太郎   TMP1 TMP2 TMP3 TMP4  TMP5 2 2008/1/1 鈴木            1 3 2008/1/2         1   1   1   1    1 4 2008/1/3 鈴木            2 5 2008/1/4            1   1 6 2008/1/5               2 7 2008/1/6               3 8 2008/1/7         1      4   4    4 9 2008/1/8 鈴木            5 非常に“原始的”な方法ですが・・・ 1.次の各セルにそれぞれ右に示した式を入力   D2: =IF(AND(B2="",B3<>""),1,"")   E2: =IF(AND(B2="",B1<>""),1,"")   F2: =IF(E2=1,1,SUM(F1,1))   G2: =IF(D2=1,F2,"") 2.範囲 D2:G2 を下方にズズーッとドラッグ&ペースト 3.範囲 G2:G9 を[コピー]して、セル I2 に[値の貼り付け] 4.セル I1 で[オートフィルタ]を設定して“(空白セル)”でデータを   抽出 5.列Iには抽出された(空白セルに見える)データを全部選択して、   Deleteキーを一発パシーッ 6.セル I1 で設定していた[オートフィルタ]で“(すべて)”を選択   (あるいは[オートフィルタ]を解除) 7.範囲 I2:I9 を[コピー]した後、セル B2 の右クリックから[形式を   選択して貼り付け]を選択 8.“空白セルを無視する”にチェック入れ 9.[OK]をクリック

umahiro
質問者

お礼

ご回答ありがとうございます。m(_ _)m 初心者にとてもわかりやすい解説感謝します。 質問のところで説明不足でした…実は C列、D列、E列・・・にもB列同様違う名前の列が続いてるんです…

全文を見る
すると、全ての回答が全文表示されます。
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

>最後尾セルに空白の数を表示したいのです。 ◆ご要望の通りではなく、下のようでもいいなら    A       B 1  年月日  鈴木太郎 2  2008/1/1   鈴木 3  2008/1/2    1 4  2008/1/3   鈴木 5  2008/1/4    1  6  2008/1/5    2  7  2008/1/6    3  8  2008/1/7    4 9  2008/1/8   鈴木 ■手順■ 1)B1:B9 の範囲を指定します 2)ツールバーの「編集」→「ジャンプ」→「セル選択」を選択します 3)「空白セル」にチェックして、OK 4)そのままで、数式バーに、 =ROW()-MATCH("",$B$1:B2,-1) 数式を入力して、Ctrlを押しながらEnterを押します

umahiro
質問者

お礼

素早いご回答ありがとうございます。m(_ _)m ただ「最後尾セルに空白の数を表示したい」の部分を 重要視していますので… でもとても勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

見た目だけ事であれば C2に =IF(B2<>"",B2,IF(B1<>"",1,C1+1)) D2に =IF(B2<>"",C2,IF(B3<>"",C2,"")) と入力し C2:D2をコピーしてC3:D最終行までを選択して貼り付け 列C:Dを非表示 もしくは、D列を選択してコピー、B列を選択し編集(E)から形式を指定して貼り付け(S)を選び値(V)を選択してOK C:D列を削除 こんなもんでいかがかしら?

umahiro
質問者

お礼

素早いご回答ありがとうございます。m(_ _)m 参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

VBAでやる例です。普通にループを回してもつまらないので、短いコードにチャレンジしてみました。 Sub test() Dim emptyArea As Range Dim myArea As Range Set emptyArea = ActiveSheet.Range("a1").CurrentRegion.Columns(2).SpecialCells(xlCellTypeBlanks) For Each myArea In emptyArea.Areas myArea.Cells(myArea.Rows.Count, 1) = myArea.Rows.Count Next End Sub

umahiro
質問者

お礼

素早いご回答ありがとうございます。m(_ _)m 簡単な関数でできればと思ったのですが、やはりVBAでやったほうが スッキリとできるんでしょうね。 実はまだエクセル初心者マークでして… VBAは一度もやったことがないんです… (ループ???こんな感じです) ただこれを機にVBAを一から勉強してみようかと思いました。 ぜひ教えてもらった短いコードを試してみたいです!

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

関連するQ&A

  • ピボットテーブルで空白セルの数を集計したい

    以下のように、セルに入る数が1か空白の表を、ピボットテーブルを用いて集計しています。 [A列] [B列] Aさん 1 Bさん 1 Cさん Aさん 1 Bさん このとき、ピボットテーブルには自動的に「(空白)」という項目が出てきますが、     1 (空白) Aさん 2 Bさん 1 Cさん このようになり、空白セルの数を数えてくれません。ここでいうと、BさんとCさんの(空白)の列にそれぞれ「1」が入るようにしたいのですが、 このようにする設定は可能でしょうか? excel2003を使用しています。よろしくお願いいたします。

  •  エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す

     エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す。  初めまして、よろしくお願いします。      A  B  C  D  E 1    赤  青  黄  緑  黒 2  3    4    1  3  2  0  9 5    9  1  3  4  3 ・    ・  ・  ・  ・  ・ ・    ・  ・  ・  ・  ・   112  4  6  1  9  6 113  7  7  5  8  1 114  6  9  1  3  7    115  7     2  5  0 116  8     0     0  という表があります。 各列の空白、もしくは0の入力されている後の値(A列では8、B列では9、C列では2、D列では5、E列では7)と最後尾の数字から2行目の値を(A列では6、B列では6、C列では5、D列では8、E列では6)を抜き出すことのできる関数式の方法がありましたら、教えていただきたく。よろしくお願いします。

  • 連続するセルに空白セルを入力する方法

    縦列に 【A1】 a b c a b c a b c …(以下100回ほど) 上記のように連続する列があるといます。 これを、 【A1】 【A2】 a b 【空白セル】 c a b 【空白セル】 c a b 【空白セル】 c …(以下連続) このようにしたいです。 どのようにすればよいのでしょうか? 教えてください。

  • エクセルで列の空白を数えるには?

     A B C 1 * 2   3 2 4 *   5 1 6 * セルに*マークを記入してある、間隔の空欄を計算したいのですが。どうやってやりますか? 空欄の最後に空白が連続した数を表示させたいです。 B,C・・・列も同様に同じ計算をします。

  • エクセルで表示上だけ空白にしたい。

    エクセルで、A列は日付、B列は受入数、C列は払出数、D列は在庫数という表を作っています。 日付は入っていても、受入か払出に入力があるときだけ在庫数を表示し、 受入、払出ともに入力がない日は、在庫も空白の表示にしたいです。 考えぬいて、 IF(AND(B2="",C2=""),"",D1+B2-C2) で、成功したかに思えましたが、 空白セルの次の行になると、 在庫数が空白なっているため、エラーになってしまいます。 在庫数を表示上だけ空欄にしたいのですが、 考え方から違っているのでしょうか。 どうかご教授お願いいたします。

  • LARGE関数で空白セル数だけ飛ばして記入したい。

    LARGE関数で空白セル数だけ飛ばして記入したい。 たとえばA列に連続する数値がランダムに入力されていて、その値の高い値から、LARGE関数で順番をB列に記入しました。しかしA列に空白セルがある場合、空白セル数だけ高い値を飛ばして順番をつけたいのですが、良い方法は御座いませんでしょうか? 例 A列に1から15までランダム記入されていて空白セルが2つあれば13から1、2としていきたいのです。 B1=IF($A$1:$A$15="","",LARGE($A$1:$A$15,A1))↓ と記入すると15、14がエラー表示になって 13から1になってしまいます。それを、13から1、2としていきたいです。 お願いします。

  • EXCEL 連続しない空白のセルの数を数えたい

    エクセルでの処理方法を教えて下さい。  空白のセルを数えるには、ふつうCOUNTBLANK関数を使うと思うのですが、COUNTBLANK関数は、連続したセルでないと範囲指定出来ないそうです。  今回数えたいのは、一行おきにデータが入っている表の空白のセルの数なので、この関数は使用できません。  検索したところ、SUMIF関数でできるとのことだったのですが、やり方がよくわかりません。 マイクロソフト サポートオンライン 「Excel で COUNTBLANK() の代わりに SUM(IF()) を使用する場合」  http://support.microsoft.com/kb/274537/ja  このような場合、どうすればいいかご存じの方、回答お願い致します。

  • excel 空白列を削除

    excelで下記の表を作成中です。 番号 名前 名前 品名 購入日 県外 待ち日数 1 2 田中 太郎 A H26.4.1 11 3 4 佐藤 元気 B H26.3.16 25 5 鈴木 一 C H26.3.20 ● 21 空白列を削除しようと思い、右クリックから削除、上方向にシフトを 実行してみたところ、一番左の番号まで削除されてしまい、 飛び飛びの番号になってしまいました。 加えて、100列目まで関数を入れているため、 削除する度に表が短くなってしまいます。 左側の番号と関数を残したまま、 かつ表の列数は維持したまま空白列を削除する方法を教えて下さい。

  • Excelで隣のセルが空白の場合にカウントする方法

    (ケース1) Excelで右隣のセルが空白となっているセルの数を知りたいのですが、どのような数式・関数を使えば可能でしょうか? (ケース2) Excelで左隣のセルが空白となっているセルの数を知りたいのですが、どのような数式・関数を使えば可能でしょうか? (例) A列  B列 333 123 444 456 空白 321 555 567 空白 258 空白 159 666 258 777 空白 (ケース1)この場合のカウントを、A列1としたい。 (ケース2)この場合のカウントを、B列3としたい。 ご教授のほどよろしくお願いします。

  • エクセル連続していない不規則な数値セルの小計を右隣空白セルに一発で出すには?

     エクセル2000で定期的に部材の出庫表を作成しているのですが、日々、データーが変動し、表が更新されます。    A   B  C  D  E  F  G 1コード   1  2  3  4  5  6  2名称   数量 ← ← ← ← 3部材1  10  5    4部材2  30 24     8 5部材3  25    40 15     23 6部材4      8 15     32 7部材5      9  18 8部材6  20 30  45       45 7  上記のような形式で表が作成され、実際はもっと横長の表になります。  各部材はB3以降に数量が記載され、最右端に合計セルがあります。数値セルの各行に所々、空白セルがあります。(セルには数式は入っていない)  少しでも表を見やすくしたいので、数値データーセルが連続しているセルの右隣の空白セルに簡単に小計を差し込みたいのですがその方法が分かりません。  仕方ないので手動にてCTRLキーを押しながら任意の数値セルを選択し、Σで合計していますが、作業が進まず、ミスも出ます。  上記の表の部材1ですと、B3、C3の合計(小計)15を空白のD3セルに、部材3ならD5、E5の小計55をF5に、部材6ならB8、D8の合計95をE8に表示させたいのです。 過去にもこの質問をしたのですが、VBAでないと出来ないのでしょうか?私はVBAでの記述がよく理解できません。他に簡単に連続する数値セルの合計を右隣の空白セルに表示する方法は無いでしょうか?IF関数等を入れたりしていますが、循環エラーが出たり、上手く行かず、教えていただけませんか?手入力しか無理でしょうか?これで困っています。

専門家に質問してみよう