[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『日付を○〜○で表示させたい』(MICK)
質問お願い致します
1 2 3 4 5 6
というデータがあったときに(日付のデータ)
1〜6
という風にデータを変換させたいのですが
そのような方法はありますか?
よろしくお願いいたします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
単発ならばすんなりいけそうですね。
実際のところだと
1 2 3 4 5 6 10 11 12 14 16 17 18 20 21 22
というように期間が分かれています。
この場合
1〜6,10〜12,14,16〜18, 20〜22
という風にしたいのです。
この場合はそれぞれでMAX MINIをつけて
地道にやっていくしかないでしょうか?
(MICK) 2016/12/03(土) 12:32
>実際のところだと >1 2 3 4 5 6 10 11 12 14 16 17 18 20 21 22 >というように期間が分かれています。 >この場合 >1〜6,10〜12,14,16〜18, 20〜22
どこのセルにその飛び飛びの連番が書かれていて、 どこのセルに結果が(カンマ区切りで?)表示されればいいんですか?
6と10の間のセルには何が入っているんですか?(数式?)
「実際のところ」を後出しされると無駄なやり取りが増えます。 また、実際のデータが日付なら、日付を使ってご説明いただきたい。
(半平太) 2016/12/03(土) 14:04
>>どこのセルにその飛び飛びの連番が書かれていて、
どこのセルに結果が(カンマ区切りで?)表示されればいいんですか? 6と10の間のセルには何が入っているんですか?(数式?)
同じ行にある数字で、6と10には何も入っていません。すみません。
実際のデータとしましては
A1からP1まで
1 2 3 4 5 6 10 11 12 14 16 17 18 20 21 22
の数字がセルごとに(空白セルは無く)入っているデータとなります(数字のみです)
コンマは是非なくてもよいですが
1〜6 10〜12 14 16〜18 20〜22
というように、連続する日付は「〜」で出したいと思っています。
よろしくお願いいたします
(MICK) 2016/12/03(土) 14:20
標準モジュールに後記マクロを貼り付け、 結果を出したいセルに下式を入力
=Abridge(A1:P1)
’標準モジュールに貼り付けるマクロ ’↓
Function Abridge(rng As Range) Dim cel As Range, NN As Long, StCel, PrevCel
StCel = rng(1, 1) PrevCel = StCel - 1 Abridge = StCel
For NN = 1 To rng.Count
Select Case rng(1, NN) - PrevCel Case 1 PrevCel = PrevCel + 1
If NN = rng.Count Then '連番で終了する場合 If PrevCel = rng(1, NN) Then Abridge = Abridge & "〜" & rng(1, NN) End If End If
Case Else If StCel = PrevCel Then Abridge = Abridge & " " & rng(1, NN) Else Abridge = Abridge & "〜" & PrevCel & " " & rng(1, NN) End If
StCel = rng(1, NN) PrevCel = StCel End Select Next NN
End Function
(半平太) 2016/12/03(土) 20:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.