Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


52064 / 76737 ←次へ | 前へ→

【29517】Re:日にちを数えたい。
発言  ichinose  - 05/10/6(木) 20:39 -

引用なし
パスワード
   あさこ さん、Statis さん、こんばんは。
>すみません、質問ですが、
>エクセルのA〜W列に日付を入力したとして、
>同じ行に同じ日付が入っていた場合、
>トータルの日数をZ列に返したい場合どうしたらいいですか?
>
>例:
>学校にいく日を求めたい。
>A列に名前
>b列に国語
>c列に算数
>d列に社会
>e列に英語
>各行に日付(9月1日とか)を入力
>
>で、たろう君は1行目で国語は9月1日、算数9月1日、社会9月10日、英語10月5日
>とした場合、たろう君は何日学校に行かなければならないかを自動的に知りたい。
>
>という例でいかがでしょうか?
ユーザー定義関数です。
標準モジュールに
'======================================
Function Dupcount(rng As Range) As Long
  Dim wk1 As Double
  Dim wk2 As Long
  wk1 = 0
  For Each crng In rng
    wk2 = WorksheetFunction.CountIf(rng, crng)
    If wk2 <> 0 Then wk1 = wk1 + 1 / wk2
    Next
  Dupcount = WorksheetFunction.Round(wk1, 0)
End Function

仮に

あるシートのA1から

  A   B   C   D   E   F

1 名前  国語  算数  社会  英語  日数
2 太郎 9月1日 9月1日 9月10日 10月5日 =dupcount(B2:E2)

なんて指定してみて下さい。
この場合なら 「3」という結果を表示します。

ただし、9月1日等の日付は文字列ではなく、書式が日付に設定されたセルとします。

実は、配列数式を使用すれば、数式だけでも可能なのですが、
今回はユーザー定義関数を選択しました。

試してみて下さい。
0 hits

【29510】日にちを数えたい。 あさこ 05/10/6(木) 18:48 質問
【29513】Re:日にちを数えたい。 Statis 05/10/6(木) 20:02 回答
【29517】Re:日にちを数えたい。 ichinose 05/10/6(木) 20:39 発言
【29520】Re:日にちを数えたい。 Statis 05/10/6(木) 20:53 発言
【29554】Re:日にちを数えたい。 あさこ 05/10/7(金) 13:28 お礼
【29539】Re:日にちを数えたい。 あさこ 05/10/7(金) 11:10 お礼

52064 / 76737 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free