Domanda

In sostanza, quello che sto cercando di fare è che ho questa formula di excel:

=IF(ISNUMBER(FIND(",",A1,FIND(",",A1,FIND("&",A1,FIND("&",A1))))+1),TRIM(MID(A1,FIND("&",A1,1)+1,FIND("&",A1,FIND("&",A1,1)+1)-FIND("&",A1,1)-1)),IF(ISNUMBER(FIND(",",A1,FIND(",",A1)+1)),TRIM(MID(A1,FIND("&",A1)+1,FIND("&",A1)-3)),IF(ISNUMBER(FIND("&",A1,FIND("&",A1)+1)),CONCATENATE(LEFT(A1,FIND(",",A1)-1),",",TRIM(MID(A1,FIND("&",A1,1)+1,FIND("&",A1,FIND("&",A1,1)+1)-FIND("&",A1,1)-1))),IF(ISNUMBER(FIND("&", A1)),SUBSTITUTE(A1,MID(A1,FIND(",", A1)+1,FIND(" &", A1)-FIND(",", A1)+2), ""),A1))))

se si nota, questa parte di esso:

=IF(ISNUMBER(FIND(",",A1,FIND(",",A1,FIND("&",A1,FIND("&",A1))))+1)

Sto cercando di dire che se la cella contiene due virgole e due e commerciali, poi fare qualcosa. In caso contrario, a specificare a fare qualcos'altro. Purtroppo, questa condizione non si comporta come previsto. Anche se ho cellule con due virgole e solo un singolo commerciale:

CORNWALL,A ROBERT & CORNWALL,ANNA

si tratta di questo come vero, e si applica la successiva affermazione vera alla cella sopra e quindi causa un errore di valore perché la successiva affermazione vera non tiene conto per la cella di cui sopra. Esso rappresenta solo celle con due virgole e due e commerciali. Ho già un'altra condizione ISNUMBER per la cella di cui sopra, come si può vedere nel mio formula iniziale.

C'è un modo per risolvere la mia condizione ISNUMBER così nel primo livello di esecuzione, verifica la presenza di entrambi i due virgole e due e commerciali nella cella?

Grazie per la risposta.

È stato utile?

Soluzione

Non so se riesco a vedere che cosa c'è di sbagliato con il codice di lì, ma hanno si è tentato un approccio diverso per contare il numero di segni & e virgole?

=IF(AND(LEN(A1)-LEN(SUBSTITUTE(A1,"&",""))=2,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))=2),TRUECOND,FALSECOND)

Questo sembra solo un po 'più semplice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top