『3桁の数字中、各位に指定した数字が出た場合の✖判定』(hiro)
000〜999までの3桁のランダムな数字中、100の位、10の位、1の位に指定した数字がきた場合、〇×の"×"判定ができる関数を教えてください。
例えば、100の位に"0"、10の位に"4"、1の位に"9"の数字を指定し、085,006,024とランダムな数字が出た場合、100の位に"0"があるので×、
10の位も同じように847,149,540とランダムな数字が出た場合、10の位に"4"があるので×、1の位も同様に"9"が出た場合×、となるようにしたいです。
難しい関数を知らない素人寄りですが、どうぞよろしくお願いします。
< 使用 Excel:Excel2021、使用 OS:Windows11 >
A4=IF(OR(INT(MOD(A1/100,10))=B1,INT(MOD(A2/10,10))=B2,MOD(A3,10)=B3), "×","")
(通りすがり) 2025/05/08(木) 15:57:59
A1、A2、A3にそれぞれ =TEXT(RANDBETWEEN(0,999),"000") (通りすがり) 2025/05/08(木) 16:01:13
Public Declare PtrSafe Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Option Explicit Sub ProgramMain() Dim nm nm = Accept3StrValues If nm = "False" Then Exit Sub RandanNumberDemo nm End Sub Private Sub RandanNumberDemo(nm) Randomize Dim rn As Long Dim n1n, n10n, n100n Dim t1t, t10t, t100t With Worksheets("Sheet1") .UsedRange.Clear .Activate .[c3].Value = nm n1n = Split(nm, ",")(2) n10n = Split(nm, ",")(1) n100n = Split(nm, ",")(0) Do rn = Int((10000000 - 0 + 1) * Rnd + 0) With .[c5] .Value = rn .NumberFormatLocal = "0,0" End With t1t = Right(CStr(rn), 1) t10t = Mid(CStr(rn), Len(CStr(rn)) - 1, 1) t100t = Mid(CStr(rn), Len(CStr(rn)) - 2, 1) If n1n = t1t Or n10n = t10t Or n100n = t100t Then .[e5].Value = "×" Else .[e5].Value = "○ (*^^*)" End If Sleep (1000) MsgBox "STOP" DoEvents .[e5].Value = "" If GetAsyncKeyState(36) Then .UsedRange.Clear Exit Do End If Loop End With End Sub Private Function Accept3StrValues() As Variant Dim x, i&, fn&, vAr Dim eflg As Boolean Do x = Application.InputBox("3個数字を入力して下さい", "VBA", "000", , , , , 2) If x = "False" Then Accept3StrValues = False Exit Do End If If Len(x) = 3 Then For i = 1 To Len(x) If Mid(x, i, 1) Like "[0-9]" Then fn = fn + 1 End If Next If fn = 3 Then For i = 1 To fn vAr = vAr & Mid(x, i, 1) & "," Next vAr = Left(vAr, 5) Accept3StrValues = vAr Exit Do End If End If Loop End Function (隠居Z) 2025/05/08(木) 16:33:40
A1に3桁の数字があるとして、 =IF(OR(MID(TEXT(A1,"000"),{1,2,3},1)={"0","4","9"}),"×","") とかではどうでしょう (´・ω・`) 2025/05/08(木) 16:35:42
なんかダメっぽい (´・ω・`) 2025/05/08(木) 16:37:04
あと、指定する数字0,4,9が一定期間おきにランダムに変わる場合に対応する関数もご存知でしたらお願いします。
例えば、0,4,9が一定期間経つと5,3,6とか2,2,9とかランダムに変わる場合の関数です。
よろしくお願いします。
(hiro) 2025/05/08(木) 16:57:43
(?) 2025/05/08(木) 17:10:07
>位ごとにセルに1桁ずつあります B1:D1だとして =IF(OR(EXACT(MID(TEXT(A1,"000"),{1,2,3},1),B1:D1)),"×","")
連続しない3つのセルだとちょっと面倒で、365ならHSTACK関数つかって =IF(OR(EXACT(MID(TEXT(A1,"000"),{1,2,3},1),HSTACK(B1,C1,D1))),"×","") ですが、2021だとどうしましょうね (´・ω・`) 2025/05/08(木) 17:25:39
|[A]|[B]|[C]|[D] |[E] |[F] [1] |245| |◯ |3桁目|2桁目|1桁目 [2] |426| |× | 3| 2| 9 [3] |358| |× | | | [4] |869| |× | | | [5] |924| |× | | | [6] |343| |× | | | [7] |590| |◯ | | | [8] |292| |◯ | | | [9] |746| |◯ | | | [10]|293| |◯ | | |
これでいいのなら後日、数式は提示します。
(?) 2025/05/08(木) 21:43:35
(hiro) 2025/05/09(金) 08:19:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.