• ベストアンサー

エクセルの関数

質問させていただきます。 旅行のバスの台数を計算します。 A1~20までに、はじめから1~20までの数値が入っています。これがバス台数となります。 B1から、バスが運行する度にその日の日付を入力します。 日付が入っているところまでが実際のバスの台数となります。 たとえば、B列の日付がA列の13まで入力されたら、バスの台数は13台ということになります。 それを、C1に自動で入るようなことはできますでしょうか? B列のある場所に値が入ったら、A列のここをイコールとしてC1に出すような。でも常にB列の一番下を参照させないといけないんですよね。 説明が下手で申し訳ありません。 ご理解頂けましたらご教授お願い致します。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

#2です。 3つずつ結合しているということは、範囲はA1からA60、B1からB60ということですか?最初の質問のA1~20までという範囲と随分違いますね。 =COUNTA(B1:B60) としてみてください。

Armadillo5
質問者

お礼

できました! お手数かけました!ありがとう御座います!

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

例データ --はセル結合したしたのセルの下部の罫線を示す 1 2008/1/1 2 3 -- 4 2008/1/2 5 -- 6 2008/1/3 7 -- 8 2008/1/4 9 10 -- 11 2008/1/5 13 -- 14 2008/1/6 15 -- 十分考えていないとは思うが 15を出すにはVBAででも使わないとできないのでは。 14行目は Function fd(a) 'MsgBox Rows.Count 'MsgBox a.Column d = Cells(Rows.Count, a.Column).End(xlUp).Row 'MsgBox d fd = d End Function のような関数で出る。 これは通常関数で導出する回答は出るだろう。 しかしそのところのセルの結合行数(上例は2行だが何行でもありえるので)までは通常関数では出せないと思う。 セル結合状態や結合行数に関する関数は絶無と記憶する。 ーー Sub test02() MsgBox Range("b14").MergeArea.Cells.Count End Sub で1列だけがセル結合なら、上記でセル結合行数が出るから 上記の14+2-1で15行目が最終で15台ということになるのかな。 標準モジュールに Sub test03() d = Cells(Rows.Count, Range("b1").Column).End(xlUp).Row mg = Range("b14").MergeArea.Cells.Count Range("C15") = d + mg - 1 '結果をC15に出す場合 End Sub 結果15台

Armadillo5
質問者

お礼

ご返答ありがとう御座います。 なかなか私にはレベルの高いお話ですね^^; VBAも勉強してみようと思います。ありがとう御座いました!

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

要はB1からB20までで入力済みのセルの数を数えればいいんですよね? それなら、 =COUNTA(B1:B20) でいかがでしょう?

Armadillo5
質問者

お礼

おおお!それは目からうろこです! 入力済みのセルの個数出せば同じことですね! と、今やってみたのですが、B列は三つのセルを結合しているせいなのか、エラーが出てしまいました。しかもC1も結合しています。 なにか方法がありますでしょうか?

回答No.1

こんばんは C1に「=20-COUNTBLANK(B1:B20)」と入力でどうでしょうか

Armadillo5
質問者

補足

早速のご回答ありがとう御座います。 すみません、説明に不備がありました。 B列のひとつのセルは、B1~3など、三つを結合させています。もちろんA列も同様です。結合された三つのセルが20個縦にならんでいるのです。 この場合、B1:B20が使用できませんよね。。 結合しても方法はあるのでしょうか? 説明不足すみません。

関連するQ&A

  • Excel 検索に関する関数について教えてください

    色々と試しましたが、どうしてもうまくいかないので教えてください。 A列に休日を除いた日付(生産カレンダー)が入っています。 日付は手入力です。 A列 2008/5/14 2008/5/15 2008/5/16 2008/5/19 2008/5/20 2008/5/21 B1セルに任意の日付が入力された時、C1のセルに任意に入力されている数値分だけ前の日付をA列を参照してD1セルに表示したいのです。 例えばB1セルに2008/5/20、C1セルに3と入力された場合、D1セルには2008/5/20の3つ上のセルの値、2008/5/15を表示させたいのです。 生産カレンダーは列でなく、行にしても可です。 LOOKUP系やOFFSETなども複合したりして試してみましたが、うまくいきません。 ご教授よろしくお願いします。

  • ■EXCELでこんな関数なんですが・・・教えて!!

    たとえばA列のセルに任意の数値が入力されています。B列のセルにある条件で日付が入力されます。そして別のセルにB列の日付が入力されるごとに隣接するA列の数値を合計していく関数なんですが。よろしくお願いします。

  • エクセル関数

    参照先のセルが空白の場合に値が入力されているセルまで列を遡って参照したいのですが、そのような時はどういった関数を使えば可能でしょうか? 具体的には添付画像のようなケースです。 A列には日付、B列にはニューヨークダウの終値が入力されています。 C列では当日終値の前営業日に対する変動率を求めます。 当日のB列が空白の場合はC列にも空白を返します。 前日の終値が空白のC3048とC3057にエラーが出ます。 C3048ではB3048のB3046に対する変動率、 C3057ではB3057のB3052に対する変動率 を求めます。 このケースではC列にどのような関数式を使えばよろしいでしょうか。 質問の文章が分かりづらくて申し訳ありませんが、よろしくお願いいたします。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • エクセル関数

    エクセル初心者につき、質問させていただきます。 集計(抽出でしょうか)に関し シートAには A列に個々の件番(数値6桁です)があります 同一件番が複数あったり、一つだけだったりと 不規則です。 B列にA列の件番に対しての項目(文字列)があります  A列    B列 100001   電車 100001   バス 100001   徒歩 100003   徒歩 100006   電車 100006   バス これらのデータをシートBにて A列に6桁の数値を入力したら B・C・D列に以下の通り反映されるように したいのですがうまくいきません  A列    B列   C列   D列 100001   電車   バス   徒歩 100003              徒歩 100006   電車   バス 適した関数を御教え頂ければありがたくお願いいたします。

  • エクセル2003の関数について教えて教えて下さい

    どなたかご教授下さい。 現在 ・・・・・・・・・・・・・・・・・・ A列 B列 C列 1 A  100  2 B  100 3 C  100  4 D  100 ・・・・・・・・・・・・・・・・・・ の、条件として A列に入る値が Aの時:B列×0.8 A列に入る値が Bの時:B列×0.5 A列に入る値が Cの時:B列×0.2 A列に入る値が Dの時:B列×1.0 を設定しています。 ですので、現在のシートは ・・・・・・・・・・・・・・・・・・・ A列 B列 C列 1 A  100  80 2 B  100 50 3 C  100  20 4 D  100 100  という状態です。 ・・・・・・・・・・・・・・・・・・・ 今後このシートを参照して 現在AであるC列の値の合計値 現在BであるC列の値の合計値 現在CであるC列の値の合計値 現在DであるC列の値の合計値 をそれぞれを算出し以下のように表示したいと考えています。 現在A→計350 現在B→計200 現在C→計120 現在C→計500 このような計算を行う場合の数式はどのようになるのでしょうか。 良い案がありましたら、どなたかご教授下さい。 宜しくお願いします。

  • Excelの関数について

    Excelの関数について 今表を作っていて 1日数回データを取って それを1ヶ月ぐらい続ける予定で その結果をExcelの表に入力したいと思っています。 A列に現在値 B列に増加分 C列にA+Bの値を入れたいと思っています。 なので、C列には、C1には=SUM(A1,B1)として セルの右下にポインタを合わせて十字で下まで引っ張って関数をコピーしています。 で、そうするとC列に0が表示されてしまい それはなんとか、ツール→オプション→表示→ゼロ値のチェックを外して解決したのですが C列の合計値は次の行のAのセルに表示したくて 例えば C3の数値はそのままA4に C7の数値はそのままA8にといった感じで で、A2のセルに=C1とかA5のセルに=C4とかしたのですが いちいち関数を埋め込むのは面倒くさいので 下のほうまで関数をコピーしたところ 関数が埋め込まれているので A列とB列にしたの方まで同じ数字が表示されています。 これって消すことはできないのでしょうか? 現在は 最初のA1セルだけに数値を入れたのですが関数を埋め込んだことにより A列とB列すべてにA1セルの数値が表示されています。 まだデータを取っていないのでB列は空白です。 ただ、できれば、下の方に数値が表示されないようにしたいんです。 言葉で説明すると A列とB列に数値が入力されない限り、C列の合計値は表示されない設定にできれば 私の言っているような状況になると思うのですが、そういう事はできないのでしょうか… 教えてください。

  • エクセルの関数で

    こんにちは。エクセルの関数でこんなことはできないでしょうか。 A列にある数値とB列にある数値で共通のものを拾い出してC列に返すというものです。 例えば、A列に2,4,6,8,10,12,14,16,18,20 B列に3,6,9,12,15,18が入力されていたとき、C列には6,12,18が返されるようにしたいのですがいかがでしょうか。 エクセルでなくてもこうすればできるよっていうのがあればそれでも構いません。例では2と3の倍数を書きましたが実際は法則性の無い数値がたくさんあるものと考えてください。 よろしくお願いします。

  • Excelの関数について教えてください。

    前にも同じような質問をしたのですが、よく理解できなかったので、もう一度質問させていただきます。 まず、A列に1~10まで入力します。次にB列に11~20まで入力します。同様にC列に21~30まで入力します。そして、セルE3に2、セルE5に12に入力します。 それから、セルE3の値をA列から検索し、セルE5の値をB列から検索し、その重なったB行のC列の値を求めたいのです。ここでは22になります。 自分なりに考えてみましたが、 =IF(MATCH(F3,A:A)=MATCH(F5,B:B),INDEX(A2:C10,MATCH(F3,A:A)=MATCH(F5,B:B),C:C,"")) ではエラーがでてしまいます。 いくら考えてもわかりません。 どなたか教えてください。よろしくお願いします。

  • エクセル(関数)について、教えて下さい

    写真のようにA列に日付が入力してあり、B列に数字を入力します。 B列に入力した数字の日付を、C列の表内に表示させ、D列にはB列に入力した数字を表示させたいと思います。 どのようにしたら良いのでしょうか。 よろしくお願いします。

専門家に質問してみよう