ちくのう症(蓄膿症)は「菌」が原因!?

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

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

A 回答 (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」のシートが当質問の変換後の表になります。

こんな感じではいかがでしょうか。
    • good
    • 0
この回答へのお礼

スゴイ!!(゜▽゜)
やりたかったことが出来ました!!

ズバリのご回答ありがとうございました!m(_ _)m

お礼日時:2008/08/13 22:47

   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]をクリック
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/13 19:39

>最後尾セルに空白の数を表示したいのです。


◆ご要望の通りではなく、下のようでもいいなら
   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を押します
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/13 19:21

見た目だけ事であれば



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列を削除

こんなもんでいかがかしら?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/13 19:08

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/13 19:00

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

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

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

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

Qエクセルで連続するデータの個数だけカウントする

エクセルは2013を使用しています。

シートには各セルに「○」 「×」 「□」 「空白」が入力されています。

   A   B  C
1  ○   ○
2  × ○  
3  × ○ □
4     ○ □
5  ○ × □
6  × □ ○
7  ○ □  
8       ○

計  2 5 3

※A列の計・・・×が連続している
※B列の計・・・○と□が連続している
※C列の計・・・□が連続している

このように連続するデータの個数だけをカウントする方法を教えて下さい。
よろしくお願い致します。

Aベストアンサー

1行目から8行目までデータが記入されているとき

一つ空けてA10に
=SUMPRODUCT((A2:A8<>"")*SIGN((A2:A8=A1:A7)+(A2:A8=A3:A9)))
と記入、右にコピー。

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

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

 上記のような形式で表が作成され、実際はもっと横長の表になります。

 各部材はB3以降に数量が記載され、最右端に合計セルがあります。数値セルの各行に所々、空白セルがあります。(セルには数式は入っていない)
 少しでも表を見やすくしたいので、数値データーセルが連続しているセルの右隣の空白セルに簡単に小計を差し込みたいのですがその方法が分かりません。

 仕方ないので手動にてCTRLキーを押しながら任意の数値セルを選択し、Σで合計していますが、作業が進まず、ミスも出ます。

 上記の表の部材1ですと、B3、C3の合計(小計)15を空白のD3セルに、部材3ならD5、E5の小計55をF5に、部材6ならB8、D8の合計95をE8に表示させたいのです。

過去にもこの質問をしたのですが、VBAでないと出来ないのでしょうか?私はVBAでの記述がよく理解できません。他に簡単に連続する数値セルの合計を右隣の空白セルに表示する方法は無いでしょうか?IF関数等を入れたりしていますが、循環エラーが出たり、上手く行かず、教えていただけませんか?手入力しか無理でしょうか?これで困っています。

 エクセル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       4...続きを読む

Aベストアンサー

>VBAでないと出来ないのでしょうか
できません。
(1)エクセルの関数は、空白行セルを探し、データがあれば、そのまま、なければ何か式を入れる、ことはできません。式を入れると
元のデータは消えてしまうから、式を入れられません。
別のセルに入れた数式で、元の行の空白セルのあり場所が判っても、その元の行の空白セルに、式を入れられません。
(2)すなわち式を入れるセル以外に、値や式を入れることができません。
(3)ある式を入れるセル自身を参照した式を入れると、循環エラーになります。
ですから、回答者の関数式の巧拙、応用力があるないに関係なく、不可能です。

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

エクセルでの処理方法を教えて下さい。
 空白のセルを数えるには、ふつうCOUNTBLANK関数を使うと思うのですが、COUNTBLANK関数は、連続したセルでないと範囲指定出来ないそうです。
 今回数えたいのは、一行おきにデータが入っている表の空白のセルの数なので、この関数は使用できません。
 検索したところ、SUMIF関数でできるとのことだったのですが、やり方がよくわかりません。

マイクロソフト サポートオンライン
「Excel で COUNTBLANK() の代わりに SUM(IF()) を使用する場合」
 http://support.microsoft.com/kb/274537/ja

 このような場合、どうすればいいかご存じの方、回答お願い致します。

Aベストアンサー

◆こんな方法もありますよ
★A1:F6 の範囲の奇数行の空白セル数
=SUMPRODUCT(MOD(ROW(A1:F6),2)*(A1:F6=""))

★A1:F6 の範囲の偶数行の空白セル数
=SUMPRODUCT((MOD(ROW(A1:F6),2)=0)*(ISBLANK(A1:F6)))

★ISBLANK、="" のような方法があります

Qエクセル、○が連続する回数を数えるには?

エクセルで、○が連続するケースの数を数えるには?
今、A1~BB1まで、○が入った表が在ります。その中で、○○のように、○が連続するケースの数を数えて表示する関数をBC1のセルに入れたいと思います。
因みに、下記の表では、○が連続するケースは3つです。
宜しくお願いします。

×××○××○○×××××○××○×××××○○○×××○×××○×××○○×××・・・・・・

Aベストアンサー

>No.9では、Sheet1とSheet2を使うようですね?
そうです。
Sheet1のA1にあるマークをチェックするためにSheet2のA1セルに関数式を入れます。
Sheet1のB1にあるマークをチェックするためにSheet2のB1セルに関数式を入れます。
Sheet1のC1からBB1セルのマークをチェックするための関数式はSheet2のB1セルをSheet2のC1からBB1セルにコピーします。

>それぞれの何処にどのような関数を入れるのでしょうか?
Sheet2のA1には次の関数式を入力します。
=IF(Sheet1!A1="○",1,0)
A1は先頭セルなので単独に判定し、○の時は1、×の時は0になるよう論理式を使います。
Sheet2のB1には次の関数式を入力します。
=IF(Sheet1!B1="○",A1+1,0)
B1は○の時A1プラス1とし、×の時は0になるよう論理式を使います。
回答No.7では複雑な論理式を提示しましたが結果として今回の論理式で良いことが分かりました。
Sheet2の1行目をA1からBB1まで選択し、2行目から50行目までコピーします。
Sheet1のBC1には次の関数式を入力します。
=COUNTIF(Sheet2!A1:BB1,2)
この関数式はSheet2のA1からBB1までの間に値が2であるセルの数をカウントします。
Excel 2013の場合は関数式が不適切となる場合がありますので、その時はBD1に関数式を入力してください。
Sheet1のBC2からBC50まではBC1をコピーします。

>No.9では、Sheet1とSheet2を使うようですね?
そうです。
Sheet1のA1にあるマークをチェックするためにSheet2のA1セルに関数式を入れます。
Sheet1のB1にあるマークをチェックするためにSheet2のB1セルに関数式を入れます。
Sheet1のC1からBB1セルのマークをチェックするための関数式はSheet2のB1セルをSheet2のC1からBB1セルにコピーします。

>それぞれの何処にどのような関数を入れるのでしょうか?
Sheet2のA1には次の関数式を入力します。
=IF(Sheet1!A1="○",1,0)
A1は先頭セルなので単独に判定し、○の時は1...続きを読む

QExcelで連続したデータの個数を調べる方法

初めて質問させて頂きます。


現在、下記のような形式のファイルを作成しています。












ある条件式にて1か2のフラグをたてて、それを日付データの横に記述させるようにしています。

一番下が最新のデータになるのですが、ここで2が1に変わってから何個目(何日目)と言うのを得たいのですが(この例だと2が1に変わって5日目)、どのような関数を使えば良いか分かりません。

基本的な質問かもしれませんが、どうぞよろしくお願いいたします。

Aベストアンサー

関数はifを使用します。
 A|B
1| |
2|2|1
3|2|2
4|2|3
5|1|1
6|1|2
7|1|3
8|1|4
9|1|5

この場合、B1の式は
=IF(A2=A1,B1+1,1)
になります。
これをB1に入力して、B1のセルの右下にある四角形を下へドラックしてコピーしてください。式は自動的に変わります。
式を詳しく説明するとまずフラグが変わったか変わってないかを判定し、変化があるのならば1を代入します。
変化がないのならば上の数値に1を加算します。
またこの式をA行にコピーすると当然エラーになるので、データは2行目から入力してください。1行目から入力するのならばB1は1と入力してください。
ちなみにこの式はフラグがいくつに増えても大丈夫です。

QExcelで連続データのカウント

Excelで、セルに0より大きい数のデータが2000個くらいあります。
データは必ずしも連続していないのですが、所々連続したデータの塊があるときに、そのデータの塊の中のデータ数(連続しているデータの数)を求め、各塊のデータ数を比較してMAX値を求めるにはどうしたらよいでしょうか。

Aベストアンサー

セルA1:A2500までにデータがあるとして、
B1に、A1にデータがある場合だけ 1 を入力。
B2に =IF(A2="",0,B1+1) と入力し、B2をコピー、B3:B2500に貼り付け。
C1に =MAX(B1:B2500) と入力。この値が最大値です。

どこに最大値があるかを見るには、
B1:B2500を選択、書式→条件付き書式で、「セルの値が」「次の値に等しい」を選び =C$1 と入力。
書式のボタンを押し、適当な書式を選びます(セルに色を着けると見やすい?)。
B列で最大値の入っているセルに今決めた書式が提要されます。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QEXCELで検索した値の下のセルの値を表示したい

たとえば列で

1郵便番号
2123-4567
3電話番号
401-1234-5678
5趣味
6かくかく
7特技
8しかじか

と表示されているとします。
ここから郵便番号を検索し、郵便番号の下のセルの値を表示させるにはどうすればいいでしょうか?

また、範囲指定は同じでも、電話番号であればその下の値が表示される方法です。

VLOOKUPやHLOOKUPではかならず検索される場所が範囲の上端や左端なので悩んでいます。

よろしくお願いします。

Aベストアンサー

lookup系の関数では、検索して見つかった値が返ってきますが、見つ
けた場所を返す関数もあります。また、範囲内の特定の場所の値を返
す関数もあります。

=match(検索する値, 探す範囲, 探し方)
=index(範囲, x行目, y列目, 領域番号)

これで例えば
=match("郵便番号", A1:A8, 0)
とやると 1 が返ってきますので、もう1行下ってことで+1して
index関数に代入する
=index(A1:A8, match("郵便番号", A1:A8, 0)+1, 1, 1)
と、123-4567が返ってくるわけです。

表の端っこ以外のところで検索しなくちゃ行けない場合に、よく使う
方法ですので、覚えといて損はないですよ。

Q【EXCEL】連続データの個数を抽出する方法を御教授ください

申し訳ありませんが、どなたかお助けください。

日付が横軸、名前が縦軸にあります。
該当する場合には1が立ち、該当がなければデータは表示されません。
1か月の中で、連続するデータの最大個数を求めたいのですが、
よくわかりません。
なにとぞよろしくお願いします。

  A  B   C  D   E  F
1    4/1  4/2  4/3  4/4  4/5
2 鈴木 1       1   1
3 田中     1   1   1   1
4 佐藤     1       1

上のデータのみで月末を迎えたら、
鈴木=(最大)2
田中=(最大)4
佐藤=(最大)1
※できれば2以上の連続する個数を求めたいので、
 佐藤はデータなしとしたいです。

Count
Index
Max
あたりを使用するように思えるのですが、
情けないかな、うまく関数を使いこなせないのです。
申し訳ありませんが、
お力をお貸しください。

Aベストアンサー

http://oshiete1.goo.ne.jp/qa148656.html
でできそうです。

Q[エクセル] セルが空だったら一つ上のセルを自動入力する

こちらには困ったときにいつもお世話になっております。
今回もよろしくお願いいたします。

EXCEL2002にて、セルが空だったら一つ上のセルを自動入力するようにしたいのです。状況といたしましては、ある個人情報管理アプリケーションが、吐き出すCSVファイルがあります。それが、困ったことに一人の人に複数の情報がある場合、個人情報ナンバーを省略します。わかりずらいと思いますので、以下の表をご覧ください。

個人情報ID 電話番号
0001     01-2345-1111
0002     01-2345-2222
        01-2345-2223
0003     01-2345-3333
        01-2345-3334
        01-2345-3335
        01-2345-3336
0004     01-2345-4444

以上のような表になります。そこで、「0002」の下の空のセルにも0002。「0003」の下の3つの空のセルすべてに0003を自動的に入力できるようにしたいのです。各々コピーしていけば何とか埋まるのですが、データ量が多くかなり時間がかかってしまいます。

解決方法をご存知の方がいらっしゃいましたら、お力添えの程、よろしくお願いいたします。

こちらには困ったときにいつもお世話になっております。
今回もよろしくお願いいたします。

EXCEL2002にて、セルが空だったら一つ上のセルを自動入力するようにしたいのです。状況といたしましては、ある個人情報管理アプリケーションが、吐き出すCSVファイルがあります。それが、困ったことに一人の人に複数の情報がある場合、個人情報ナンバーを省略します。わかりずらいと思いますので、以下の表をご覧ください。

個人情報ID 電話番号
0001     01-2345-1111
0002     01-2345-2222
...続きを読む

Aベストアンサー

こんにちは

・A列の対象範囲を選択
・編集 ジャンプ セルの選択 「空白セル」にチェック
・数式バーに =An(注) と入力後
 [Ctrl]を押したまま[Enter] で入力確定

セル行(n) はアクティブセルの直上セル行値です
 対象セル(空白セル)が選択された状態で1箇所だけ
 反転していないセルがアクティブセルです。
例えば以下の場合
 A4がアクティブセルになっている筈なので =A3 と
 なります。

   A       B
1 個人情報ID 電話番号
2 0001     01-2345-1111
3 0002     01-2345-2222
4         01-2345-2223
5 0003     01-2345-3333
6         01-2345-3334
7         01-2345-3335
8         01-2345-3336
9 0004     01-2345-4444


人気Q&Aランキング

おすすめ情報