1
votes

Comment dire à python que toute la valeur est une chaîne? puisque ma formule Excel contient une apostrophe

En python

File "inventory change formula", line 52
    formula = "=sumifs('INVENTORY IN AND OUT'!F:F, 'INVENTORY IN AND OUT'!E:E, "=1",'INVENTORY IN AND OUT'!D:D,"=A",'INVENTORY IN AND OUT'!C:C,"=1") - sumifs('INVENTORY IN AND OUT'!G:G, 'INVENTORY IN AND OUT'!E:E, "=1",'INVENTORY IN AND OUT'!D:D,"=A",'INVENTORY IN AND OUT'!C:C,"=1""
                                                                                                                   ^
SyntaxError: invalid syntax

I GET !!

formula = "=sumifs('INVENTORY IN AND OUT'!F:F, 'INVENTORY IN AND OUT'!E:E, "=1",'INVENTORY IN AND OUT'!D:D,"=A",'INVENTORY IN AND OUT'!C:C,"=1") - sumifs('INVENTORY IN AND OUT'!G:G, 'INVENTORY IN AND OUT'!E:E, "=1",'INVENTORY IN AND OUT'!D:D,"=A",'INVENTORY IN AND OUT'!C:C,"=1"

print (formula)

Ma question est de savoir comment dire à python que la valeur entière est une chaîne car ma formule contient des apostrophes ??


1 commentaires

essayez d'ajouter le caractère d'échappement \ avant ".


3 Réponses :


1
votes

Utilisez le caractère d'échappement

=sumifs('INVENTORY IN AND OUT'!F:F, 'INVENTORY IN AND OUT'!E:E, "=1",'INVENTORY IN AND OUT'!D:D,"=A",'INVENTORY IN AND OUT'!C:C,"=1") - sumifs('INVENTORY IN AND OUT'!G:G, 'INVENTORY IN AND OUT'!E:E, "=1",'INVENTORY IN AND OUT'!D:D,"=A",'INVENTORY IN AND OUT'!C:C,"=1

Sortie

formula = "=sumifs('INVENTORY IN AND OUT'!F:F, 'INVENTORY IN AND OUT'!E:E, \"=1\",'INVENTORY IN AND OUT'!D:D,\"=A\",'INVENTORY IN AND OUT'!C:C,\"=1\") - sumifs('INVENTORY IN AND OUT'!G:G, 'INVENTORY IN AND OUT'!E:E, \"=1\",'INVENTORY IN AND OUT'!D:D,\"=A\",'INVENTORY IN AND OUT'!C:C,\"=1"

print (formula)


0 commentaires

1
votes

Commencez et terminez votre chaîne entière par '' ' (guillemets triples).

'=sumifs(\'INVENTORY IN AND OUT\'!F:F, \'INVENTORY IN AND OUT\'!E:E, "=1",\'INVENTORY IN AND OUT\'!D:D,"=A",\'INVENTORY IN AND OUT\'!C:C,"=1") - sumifs(\'INVENTORY IN AND OUT\'!G:G, \'INVENTORY IN AND OUT\'!E:E, "=1",\'INVENTORY IN AND OUT\'!D:D,"=A",\'INVENTORY IN AND OUT\'!C:C,"=1'

Sortie:

XXX


0 commentaires

0
votes

Vous devez correctement échapper les virgules inversées. De plus, j'ai remarqué que vous avez oublié la dernière parenthèse de la chaîne.

Essayez tris:

=sumifs('INVENTORY IN AND OUT'!F:F, 'INVENTORY IN AND OUT'!E:E, "=1",'INVENTORY IN AND OUT'!D:D,"=A",'INVENTORY IN AND OUT'!C:C,"=1") - sumifs('INVENTORY IN AND OUT'!G:G, 'INVENTORY IN AND OUT'!E:E, "=1",'INVENTORY IN AND OUT'!D:D,"=A",'INVENTORY IN AND OUT'!C:C,"=1")

Sortie:

formula = "=sumifs('INVENTORY IN AND OUT'!F:F, 'INVENTORY IN AND OUT'!E:E, \"=1\",'INVENTORY IN AND OUT'!D:D,\"=A\",'INVENTORY IN AND OUT'!C:C,\"=1\") - sumifs('INVENTORY IN AND OUT'!G:G, 'INVENTORY IN AND OUT'!E:E, \"=1\",'INVENTORY IN AND OUT'!D:D,\"=A\",'INVENTORY IN AND OUT'!C:C,\"=1\")"

print(formula)


0 commentaires