用VB語言在EXCEL中編寫通過出生年月日判斷星座急求

時間 2021-08-13 13:26:23

1樓:

其實最簡單的思路應該是將生日(比如在a1)中的年份資訊去掉(全部統一為2023年,用函式date(0,month(a1),day(a1)),再與星座分割日(比如水瓶座1月20日為20,雙魚座2月19日為49等)做大小比對。以前網上很多一句語句查星座的都是這個思路。

但這個方法有個隱蔽的bug:閏年。閏年裡面的星座分割日在3月份之後要加1。

隱蔽的bug是大忌!如果別人呼叫了你的函式,卻總是有無規律的錯誤發生,有時絞盡腦汁找不出問題的所在,往往就是因為你函式中這種隱蔽的bug了。

為了繞過閏年的bug,我編寫了下面的函式,直接仿造人肉查詢月、日的過程。

當然,裡面有可以優化的地方,比如月份的陣列由於維數和內容一樣,可以直接優化掉;比如最後的if語句結構可以用一個iif語句代替。但這些都是細枝末節,為了更好地體現程式設計思路,就不做這些「匠心」的優化了。

function horoscope(x as date) as string

dim xz(12) as string

dim yue(12) as long

dim ri(12) as long

xz(0) = "摩羯座"

xz(1) = "水瓶座"

xz(2) = "雙魚座"

xz(3) = "白羊座"

xz(4) = "金牛座"

xz(5) = "雙子座"

xz(6) = "巨蟹座"

xz(7) = "獅子座"

xz(8) = "**座"

xz(9) = "天秤座"

xz(10) = "天蠍座"

xz(11) = "射手座"

xz(12) = "摩羯座"

yue(1) = 1

yue(2) = 2

yue(3) = 3

yue(4) = 4

yue(5) = 5

yue(6) = 6

yue(7) = 7

yue(8) = 8

yue(9) = 9

yue(10) = 10

yue(11) = 11

yue(12) = 12

ri(1) = 20

ri(2) = 19

ri(3) = 21

ri(4) = 20

ri(5) = 21

ri(6) = 22

ri(7) = 23

ri(8) = 23

ri(9) = 23

ri(10) = 24

ri(11) = 23

ri(12) = 22

m = month(x)

d = day(x)

if d < ri(yue(m)) then

horoscope = xz(yue(m) - 1)

else

horoscope = xz(yue(m))

end if

end function

2樓:匿名使用者

這個太簡單了,我先將12星座分別編號為1至12。很明顯出生的月份跟星座有很大關係,以10月出生為例,只可能是天秤座或是天蠍座,星座編號為9或10,再看出生的日,如果大於22即為天蠍座,小於等於22的則為天秤座。將e、f列用公式算出月、日,=if(f1>22,e1,e1-1)

excel如何根據月份和日期判定星座?

3樓:匿名使用者

參考:疑難188 如何根據出生日期得到星座

=lookup(z2&aa2,)

4樓:擁夢者

=vlookup(--(z2&aa2),,2)

excel中,知道身份證號,想通過出生日期對應出相應星座如何設定

5樓:匿名使用者

公式如下

=if(len(a2)=18,choose(match(true,mid(a2,11,2)&"月"&mid(a2,13,2)&"日">=,),"摩羯座","射手座","天蠍座","天秤座","**座","獅子座","巨蟹座","雙子座","金牛座","白羊座","雙魚座","水瓶座"),choose(match(true,mid(a2,9,2)&"月"&mid(a2,11,2)&"日">=,),"摩羯座","射手座","天蠍座","天秤座","**座","獅子座","巨蟹座","雙子座","金牛座","白羊座","雙魚座","水瓶座"))

6樓:愛琴海之玲

首先 我想知道 你表中有沒有關於星座的那張表呢

7樓:

我類個擦,這個可以對應出星座??

求寫在excel裡輸入出生年月日怎麼自動分析生肖、星座

8樓:木有個性的名字

如果是為了完成作業,還請高手來直接給答案吧如果是思考這個問題:

1、什麼錯誤,顏色什麼的,條件格式來處理

2、生肖的話,年份除以12,看餘數。建立一個對生肖的對應關係3、星座,用vlookup的不精確匹配,與你的一個星座時間表進行匹配

在excel中輸入生日怎樣過確定星座?

9樓:匿名使用者

這個必須在f列輸入條件函式,擷取a列的月份,根據這個判斷是什麼星座!

excel通過出生年月日怎麼得出屬相和星座?

10樓:手機使用者

假設日期在a1 =lookup(--text(a1,"m.dd"),,)

if在excel中怎麼用,excel中if函式怎麼用?裡面有三個值,

奉央 這樣的話你可以直接開啟相應的插入或者開啟設定進行插入相關的一些應用就行。 哈爾和城堡 這個主要就是一個函式的運用而已,而且對於使用者來說其實非常的方便,主要就是計算的一個它的極。 這個在excel 當中應該就是假設的這麼一種函式,其實應用還是比較廣泛的 墨竹寒月 142142中的使用的話,你得...

在excel中運用vba編寫巨集,形成10行的楊輝三角

sub 楊輝三角 dim i as integer,j as integerfor i 1 to 10 cells i,11 i 1 cells i,9 i 1 if i 3 then for j 13 i to 7 i step 2cells i,j cells i 1,j 1 cells i 1...

在vb中n 用for迴圈怎麼寫

風華正茂 dim n as long dim s as double n inputbox 請輸入n的值 s 1 s初值設為1for i 1 to n step 1 s s i next i print s 最後輸出 dim n as long dim i as long dim s as long...