遊:デジタル時計を作ってみる

セルに1つ1つ数式を与えてデジタル時計を作ってみる
基本は

●●● ●●●   ●●● ●●●
●●● ●●●   ●●● ●●●
●●● ●●● ■ ●●● ●●●
●●● ●●●   ●●● ●●●
●●● ●●● ■ ●●● ●●●
●●● ●●●   ●●● ●●●
●●● ●●●   ●●● ●●●

各セルが数値によってONかOFFで判断する
1個1個入力すれば時間はかかりますが可能です

だがエクセルですから
極力数式の入力は少なく考えます

まずは現在の時間の取得NOW()関数を使います
=NOW() (現在の時刻が表示されます

ですが1桁ごとに表示するので分割します

時間の十の位(セルB3
=VALUE(IF(LEN(HOUR(NOW()))>1,LEFT(HOUR(NOW()),1),""))

時間の一の位(セルC3
=VALUE(RIGHT(HOUR(NOW()),1))

分の十の位(セルE3
=VALUE(IF(LEN(MINUTE(NOW()))>1,LEFT(MINUTE(NOW()),1),"0"))

分の一の位(セルF3
=VALUE(RIGHT(MINUTE(NOW()),1))

※各セルはセルの書式設定で数値にしておく必要があります

  A B C D E F G H
1            
2        
3   0 3   1 9    
次に表示する数字のベースを作ります
ON(1)-OFF(0)って気がするので1で数字を作ってます



これでベースは完了です

デジタル時計の表示部分を作ります

H I J K L M N O P Q R S T U V W X Y Z
13
14
15
16
17
18
19
20
21
セル I14 の数式
=IF($B$3=1,IF(AO3=1,"●",""),"")&IF($B$3=2,IF(AK3=1,"●",""),"")

これを時間の十の位の21個のセルにコピペします



これで時間の十の位は完了です
同じ事を時間の一の位、分の十の位、分の一の位で設定します

時間の一の位(セルM14の数式
=IF($C$3=1,IF(AO3=1,"●",""),"")&IF($C$3=2,IF(AK3=1,"●",""),"")&IF($C$3=3,IF(AG3=1,"●",""),"")&IF($C$3=4,IF(AC3=1,"●",""),"")&IF($C$3=5,IF(Y3=1,"●",""),"")&IF($C$3=6,IF(U3=1,"●",""),"")&IF($C$3=7,IF(Q3=1,"●",""),"")&IF($C$3=8,IF(M3=1,"●",""),"")&IF($C$3=9,IF(I3=1,"●",""),"")&IF($C$3=0,IF(AS3=1,"●",""),"")
セルM14をコピーして時間の一の位に貼り付けます
これで時間の一の位は完了です

分の十の位(セルS14の数式
=IF($E$3=1,IF(AO3=1,"●",""),"")&IF($E$3=2,IF(AK3=1,"●",""),"")&IF($E$3=3,IF(AG3=1,"●",""),"")&IF($E$3=4,IF(AC3=1,"●",""),"")&IF($E$3=5,IF(Y3=1,"●",""),"")&IF($E$3=6,IF(U3=1,"●",""),"")&IF($E$3=7,IF(Q3=1,"●",""),"")&IF($E$3=8,IF(M3=1,"●",""),"")&IF($E$3=9,IF(I3=1,"●",""),"")&IF($E$3=0,IF(AS3=1,"●",""),"")
セルS14をコピーして分の十の位に貼り付けます
これで分の十の位は完了です

分の一の位(セルW14の数式
=IF($F$3=1,IF(AO3=1,"●",""),"")&IF($F$3=2,IF(AG3=1,"●",""),"")&IF($F$3=3,IF(AG3=1,"●",""),"")&IF($F$3=4,IF(AC3=1,"●",""),"")&IF($F$3=5,IF(Y3=1,"●",""),"")&IF($F$3=6,IF(U3=1,"●",""),"")&IF($F$3=7,IF(Q3=1,"●",""),"")&IF($F$3=8,IF(M3=1,"●",""),"")&IF($F$3=9,IF(I3=1,"●",""),"")&IF($F$3=0,IF(AS3=1,"●",""),"")
セルS14をコピーして分の一の位に貼り付けます
これで分の一の位は完了です

セルQ16とQ18には●を設定します
完成すると上記のような時計が表示されます

すっごく長い数式ですが
よく見ると簡単な方法です
●にしたい数字のセルをIF()を使ってつなげています

IF()で入れ子にすると7つの制限にかかりますので
IF()を「&」でつなげています
この方法なら7つの制限にはかかりません

以上 デジタル時計を作ってみるでした
TOPIF関数の使用回数の上限
(C) 2001-2017 Digital World