[[20220106204105]] 『値の判定について。』(ストリーム) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『値の判定について。』(ストリーム)

お世話になっております。
下記のデータを
Aセル























実行しますと

Sub 管理番号()

  Dim wkData
  Dim r As Long
  Dim n As Long
  Dim m As Long

  r = 1
  n = 1
  m = 1

  Do
    If Cells(r, 1).Value = "" Then Exit Do
    wkData = Cells(r, 1).Value
    Cells(r, 2).Value = "'" & Format(n, "00000") & "-" & m
    r = r + 1
    If wkData = Cells(r, 1).Value Then
      m = m + 1
    Else
      m = 1
      n = n + 1
    End If
  Loop

End Sub

実行結果が
管理番号を付加した
下記のようになるのですが

Aセル  Bセル

あ 00001-1
あ 00001-2
あ 00001-3
あ 00001-4
あ 00001-5
あ 00001-6
あ 00001-7
あ 00001-8
あ 00001-9
あ 00001-10
い 00002-1
い 00002-2
い 00002-3
い 00002-4
い 00002-5
い 00002-6
い 00002-7
い 00002-8
い 00002-9
い 00002-10
い 00002-11
う 00003-1
う 00003-2

Aセルの値のみあった場合に
同時のBセルとCセルを表示したく
Aセルの値が10以内(10を含む)あった場合Cセルに〇
Aセルの値が11以上あった場合Cセルに×
とCセルに〇×で判定結果を表示したいのですが
アドバイスいただけないでしょうか。
よろしくお願いいたします。

Aセル  Bセル Cセル

あ 00001-1 〇
あ 00001-2 〇
あ 00001-3 〇
あ 00001-4 〇
あ 00001-5 〇
あ 00001-6 〇
あ 00001-7 〇
あ 00001-8 〇
あ 00001-9 〇
あ 00001-10〇
い 00002-1 ×
い 00002-2 ×
い 00002-3 ×
い 00002-4 ×
い 00002-5 ×
い 00002-6 ×
い 00002-7 ×
い 00002-8 ×
い 00002-9 ×
い 00002-10×
い 00002-11×
う 00003-1 〇
う 00003-2 〇

< 使用 Excel:Excel2019、使用 OS:Windows10 >


B列もC列も数式ではだめですか。

(マナ) 2022/01/06(木) 21:12


こちらでAセルとBセルを準備しますので、Cセルのみ数式でも
助かります。
(ストリーム) 2022/01/06(木) 21:18

COUNTIF関数で、個数を数えることができます。

(マナ) 2022/01/06(木) 21:30


ご連絡ありがとうございます。
数式あまり使用しないのですが
カウントイフの使用方法で
例えば
=COUNTIF(A1:A200,A1)ですと
カウントを数値で表示できますが
=COUNTIFS(A1:A100,">=10",A1:A100,"<10") を
〇,×で判定するのに
カウントイフを使用する場合
アドバイスいただけないでしょうか。
お手数をおかけしますがよろしくお願いいたします。

(ストリーム) 2022/01/06(木) 22:11


=IF(COUNTIFS(A1:A100,">=10",A1:A100,"<10"),"〇","×")
(nm) 2022/01/06(木) 22:27

>=COUNTIFS(A1:A100,">=10",A1:A100,"<10")

不思議な式ですね。
何をカウントしたいのでしょうか?

(わからん) 2022/01/06(木) 22:41


 参考に
 Sub 管理番号2()
    Dim c As Range, wkData As String, n As Long, m As Long
    For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp))
        If c.Value <> wkData Then
            wkData = c.Value
            n = n + 1
            m = 1
        Else
            m = m + 1
        End If
        c.Offset(, 1).Value = Format(n, "00000") & "-" & m
        c.Offset(, 2).Value = IIf(Application.CountIf(Columns(1), c.Value) > 10, "×", "○")
    Next
 End Sub

(ピンク) 2022/01/06(木) 22:53


 Sub test()
    Dim r As Range

    Set r = Cells(1).CurrentRegion.Resize(, 3)
    r.Columns(2).Formula = "=TEXT(COUNTA(UNIQUE($A$1:A1)),""00000"")&""-""&COUNTIF($A$1:A1,A1)"
    r.Columns(3).Formula = "=IF(COUNTIF(A:A,A1)<=10,""〇"",""×"")"
    r.Value = r.Value

 End Sub

(マナ) 2022/01/06(木) 23:15


ご連絡遅くなりました。
(nm)様。
数式ありがとうございました。
(わからん)様。
Aセルの数で、まるばつのカウントをしたかったのです。
(ストリーム) 2022/01/07(金) 11:44

ご連絡遅くなりました。
(ピンク)様。
コードのご提示ありがとうございました。
参考にさせていただきます。
(マナ)様。
カウントイフのご提案ありがとうございました。
(ストリーム) 2022/01/07(金) 11:47

 >=COUNTIFS(A1:A100,">=10",A1:A100,"<10")

 この式だと、A1〜A100の中で10以上かつ10未満のデータの数を
 数えることになります。
 これを満たすデータは存在しないので、0にしかなりません。
 (ちなみに、質問内容とは不等号も逆かな?)

 〇と×の二択しかないなら

 =IF(COUNTIFS($A$1:$A$100,A1)<=10,"〇","×")

 とかでできませんか?

 後、〇は漢数字の零ですね。まぁ、他で使っているものも統一されているなら
 問題はないでしょうけど。
(コナミ) 2022/01/07(金) 12:01

(コナミ)様。
例題で間違えてご提示してしまいましたが
間違いに気づき、調べたあとすでに解決済みです。
わざわざご連絡ありがとうございました。
(ストリーム) 2022/01/07(金) 12:09

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.