再次需要您的帮助
我有一个月的计数值填充了一系列数据。然后,我对范围AK进行降序排序并获得10个第一个值。
For i = LBound(Brand) To UBound(Brand)
Range("AF" & i + 2).Formula = "=COUNTIFS(C:C," & RTrim(Month(Mesyaz3)) & _
",H:H,""Headphones"",F:F," & Chr(34) & Brand(i) & Chr(34) & ")"
Next i
接下来,我将范围复制到AL和AM,并希望仅对第一品牌应用countifs公式,但其他值相同。完全堆叠。只是
Range("AL2:AL8").Formula = "=COUNTIFS(C:C," & RTrim(Month(Mesyaz2)) & _
",H:H,""Headphones"",F:F," & Chr(34) & Brand(i) & Chr(34) & ")"
由于某种原因不起作用。有什么办法可以通过数组或替代方法?还是应该从公式中提取字符串?
答案 0 :(得分:0)
解决方案非常简单。希望能帮助到某人。
## Importation des Modules ##
from tkinter import *
## Création de la fenêtre / creating the sheet ##
def main():
fen = Tk()
fen.title('Game')
texte=Label(fen, text="Go ahead Mr Joestar")
texte.grid(row=0, column=0)
pos=Label(fen, text='(Nope;Nope)')
pos.grid(row=0, column=1)
##Canvas##
dessin=Canvas(fen, bg="white", width=301, height=301) #canvas
dessin.grid(row = 1, column = 0, padx=2, pady=2, columnspan=2) #Position Canvas
dessin.create_line(99, 0, 99, 301, width=1, fill='black')
dessin.create_line(201, 0, 201, 301, width=1, fill='black')
dessin.create_line(0, 99, 301, 99, width=1, fill='black')
dessin.create_line(0, 201, 301, 201, width=1, fill='black')
##buttons##
bouton_quitter = Button(fen, text='Quitter', command=fen.destroy) #Quitter
bouton_quitter.grid(row=2, column=0)
bouton_restart = Button(fen, text='Recommencer', command=restart(fen)) #Restart
bouton_restart.grid(row=2, column=1)
##binds##
dessin.bind("<Motion>", Position) #event motion mouse
dessin.bind("<Button-1>", cases) #event mouse 1
##Liste / list ###
list=[[0,0,0],[0,0,0],[0,0,0]]
print(list)
##Variables##
Joueur=1 #Joueur1 (nommé Joestar) = 1 ; Joueur2 (nommé DArbi) = -1 / player1=1 ; player2=-1
V1=0#condition victoire j1 / Winning condition for player 1
V2=0#condition victoire j2 / Winning condition for player 2
IDC=0 #identifier la case / for identifying which cell
turns=0#nombre de tours
##Function position##
def Position(event):
pos.configure(text='('+str(event.x)+'.'+str(event.y)+')')
##Fuction win##
def win(list, V1, V2): #pour voir qui a gagné / to see who won
if list[0][0]+list[0][1]+list[0][2]==3: #Vérification lignes
V1=1
elif list[0][0]+list[0][1]+list[0][2]==-3:
V2=1
if list[1][0]+list[1][1]+list[1][2]==3:
V1=1
elif list[1][0]+list[1][1]+list[1][2]==-3:
V2=1
if list[2][0]+list[2][1]+list[2][2]==3:
V1=1
elif list[2][0]+list[2][1]+list[2][2]==-3:
V2=1
if list[0][0]+list[1][0]+list[2][0]==3: #Vérification colones
V1=1
elif list[0][0]+list[1][0]+list[2][0]==-3:
V2=1
if list[0][1]+list[1][1]+list[2][1]==3:
V1=1
elif list[0][1]+list[1][1]+list[2][1]==-3:
V2=1
if list[0][0]+list[1][1]+list[2][2]==3:#Diagonales
V1=1
elif list[0][0]+list[1][1]+list[2][2]==-3:
V2=1
if list[0][2]+list[1][1]+list[2][0]==3:
V1=1
elif list[0][2]+list[1][1]+list[2][0]==-3:
V2=1
if V1==1 and V2==0:
texte.configure(text='Joestar win !')
elif V1==0 and V2==1:
texte.configure(text='DArbi win')
elif turns==9 and V1==0 and V2==0 or V1==1 and V2==1:
texte.configure(text='No one won...')
##Function remplir##
def remplir(list,IDC):#pour remplir les cases
global Joueur #to edit Joueur for all the program
if IDC ==1:#Cell 1
if list[0][0]==0:
list[0][0]=Joueur
if list[0][0]==1:
dessin.create_line(10,10,90,90, width=1) #cell 1 cross
dessin.create_line(10, 90, 90, 10, width=1)
elif list[0][0]==-1:
dessin.create_oval(10, 10, 90, 90, width=1)#cell 1 circle
Joueur=(-Joueur)#nextplayer
elif list[0][0]!=0:
print("case déjà prise")
if IDC ==2:#Cell 2
if list[0][1]==0:
list[0][1]=Joueur
if list[0][1]==1:
dessin.create_line(110,10,190,90, width=1)
dessin.create_line(110,90,190,10, width=1)
elif list[0][1]==-1:
dessin.create_oval(110, 10, 190, 90, width=1)
Joueur=(-Joueur)
elif list[0][1]!=0:
print("case déjà prise")
if IDC ==3:#Cell 3
if list[0][2]==0:
list[0][2]=Joueur
if list[0][2]==1:
dessin.create_line(210,10,290,90, width=1)
dessin.create_line(210,90,290,10, width=1)
elif list[0][2]==-1:
dessin.create_oval(210, 10, 290, 90, width=1)
Joueur=(-Joueur)
elif list[0][2]!=0:
print("case déjà prise")
if IDC ==4: #Cell 4
if list[1][0]==0:
list[1][0]=Joueur
if list[1][0]==1:
dessin.create_line(10,110,90,190, width=1)
dessin.create_line(10, 190, 90, 110, width=1)
elif list[1][0]==-1:
dessin.create_oval(10, 110, 90, 190, width=1)
Joueur=(-Joueur)
elif list[1][0]!=0:
print("case déjà prise")
if IDC ==5:#Cell 5
if list[1][1]==0:
list[1][1]=Joueur
if list[1][1]==1:
dessin.create_line(110,110,190,190, width=1)
dessin.create_line(110,190,190,110, width=1)
elif list[1][1]==-1:
dessin.create_oval(110, 110, 190, 190, width=1)
Joueur=(-Joueur)
elif list[1][1]!=0:
print("case déjà prise")
if IDC ==6:#Cell 6
if list[1][2]==0:
list[1][2]=Joueur
if list[1][2]==1:
dessin.create_line(210,110,290,190, width=1)
dessin.create_line(210,190,290,110, width=1)
elif list[1][2]==-1:
dessin.create_oval(210, 110, 290, 190, width=1)
Joueur=(-Joueur)
elif list[1][2]!=0:
print("case déjà prise")
if IDC ==7: #Cell 7
if list[2][0]==0:
list[2][0]=Joueur
if list[2][0]==1:
dessin.create_line(10,210,90,290, width=1)
dessin.create_line(10, 290, 90, 210, width=1)
elif list[2][0]==-1:
dessin.create_oval(10, 210, 90, 290, width=1)
Joueur=(-Joueur)
elif list[2][0]!=0:
print("case déjà prise")
if IDC ==8:#Cell 8
if list[2][1]==0:
list[2][1]=Joueur
if list[2][1]==1:
dessin.create_line(110,210,190,290, width=1)
dessin.create_line(110,290,190,210, width=1)
elif list[2][1]==-1:
dessin.create_oval(110, 210, 190, 290, width=1)
Joueur=(-Joueur)
elif list[2][1]!=0:
print("case déjà prise")
if IDC ==9:#Cell 9
if list[2][2]==0:
list[2][2]=Joueur
if list[2][2]==1:
dessin.create_line(210,210,290,290, width=1)
dessin.create_line(210,290,290,210, width=1)
elif list[2][2]==-1:
dessin.create_oval(210, 210, 290, 290, width=1)
Joueur=(-Joueur)
elif list[2][2]!=0:
print("case déjà prise")
##Fuction cases##
def cases(event):
if int(event.x)>2 and int(event.x)<100 and int(event.y)>0 and int(event.y)<100: #CASE A1
print('A1')
IDC=1
remplir(list,IDC)
win(list, V1, V2)
elif int(event.x)>102 and int(event.x)<200 and int(event.y)>0 and int(event.y)<100: #CASE A2
print('A2')
IDC=2
remplir(list,IDC)
win(list, V1, V2)
elif int(event.x)>202 and int(event.x)<300 and int(event.y)>0 and int(event.y)<100: #CASE A3
print('A3')
IDC=3
remplir(list,IDC)
win(list, V1, V2)
elif int(event.x)>2 and int(event.x)<100 and int(event.y)>100 and int(event.y)<200: #CASE B1
print('B1')
IDC=4
remplir(list,IDC)
win(list, V1, V2)
elif int(event.x)>100 and int(event.x)<200 and int(event.y)>102 and int(event.y)<200: #CASE B2
print('B2')
IDC=5
remplir(list,IDC)
win(list, V1, V2)
elif int(event.x)>202 and int(event.x)<300 and int(event.y)>102 and int(event.y)<200: #CASE B3
print('B3')
IDC=6
remplir(list,IDC)
win(list, V1, V2)
elif int(event.x)>2 and int(event.x)<100 and int(event.y)>202 and int(event.y)<300: #CASE C1
print('C1')
IDC=7
remplir(list,IDC)
win(list, V1, V2)
elif int(event.x)>100 and int(event.x)<200 and int(event.y)>202 and int(event.y)<300: #CASE C2
print('C2')
IDC=8
remplir(list,IDC)
win(list, V1, V2)
elif int(event.x)>202 and int(event.x)<300 and int(event.y)>202 and int(event.y)<300: #CASE C3
print('C3')
IDC=9
remplir(list,IDC)
win(list, V1, V2)
else:
print('no')
##Fuctions:others##
def restart(fen):
fen.destroy()
main()
##Mainloop##
main()