Excel VBA質問箱 IV

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

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


780 / 13645 ツリー ←次へ | 前へ→

【78355】隣同士のセルの文字を判定してカウントしたい たか 16/7/23(土) 19:50 質問[未読]
【78356】Re:隣同士のセルの文字を判定してカウント... マナ 16/7/23(土) 20:08 発言[未読]
【78357】Re:隣同士のセルの文字を判定してカウント... マナ 16/7/23(土) 20:31 発言[未読]
【78358】Re:隣同士のセルの文字を判定してカウント... sy 16/7/24(日) 9:06 回答[未読]
【78359】Re:隣同士のセルの文字を判定してカウント... マナ 16/7/24(日) 9:43 発言[未読]

【78355】隣同士のセルの文字を判定してカウントし...
質問  たか  - 16/7/23(土) 19:50 -

引用なし
パスワード
   勤務シフト表をexcelで作成しています。
縦軸に名前、横軸に1〜31日までの日付をとり、「夜」「早」「中」「休」など勤務記号が入っています。

例えばAさんの2日の勤務が「中」の場合、翌日の勤務が「早」ならば1カウント、
「早」以外の記号ならばノーカウントとして
Aさんのひと月の勤務内で「中」→「早」の流れが何回あるか計算したいのですが、関数で可能でしょうか?

それともユーザー定義関数を作成しないとできないでしょうか?

【78356】Re:隣同士のセルの文字を判定してカウン...
発言  マナ  - 16/7/23(土) 20:08 -

引用なし
パスワード
   ▼たか さん:
関数で可能だと思います。
わたしは関数が得意ではありませんので、
ものすごく長い式になっちゃいますが、
適切な掲示板で質問されると、すぐに解決するでしょう。

【78357】Re:隣同士のセルの文字を判定してカウン...
発言  マナ  - 16/7/23(土) 20:31 -

引用なし
パスワード
   >ものすごく長い式

↓のような作業の数式化をイメージしています。

Sub test()
  Dim r As Range
  Dim s1 As String
  Dim s2 As String
  
  Set r = Range("B2").Resize(, 31)
  
  s1 = Join(Application.Transpose(Application.Transpose(r)))
  s2 = Replace(s1, "中 早", "中 ")
  
  MsgBox Len(s1) - Len(s2)
  
End Sub

【78358】Re:隣同士のセルの文字を判定してカウン...
回答  sy  - 16/7/24(日) 9:06 -

引用なし
パスワード
   おはようございます。

Excel2007以降なら、
=COUNTIFS(B2:AE2,"中",C2:AF2,"早")

Excel2003以前でも使う可能性があるなら、
=SUMPRODUCT((B2:AE2="中")*(C2:AF2="早"))

で求められます。

ここはVBAの掲示板なので、関数で解決したいなら一般操作の質問を専門で扱ってる掲示板で聞く方が回答は早いですよ。

【78359】Re:隣同士のセルの文字を判定してカウン...
発言  マナ  - 16/7/24(日) 9:43 -

引用なし
パスワード
   ものすごく短い式でした。ちょっとした衝撃です。
その分、身についた感があります。

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