Come eseguire una semplice operazione impostata nel foglio di calcolo dei documenti di Google?


10

Supponiamo di avere alcuni nomi nelle celle B1:B3e un elenco completo di tutti i nomi in A1:A4, è possibile per me generare un elenco di nomi in A1:A4cui non compaiono B1:B3?

Ad esempio, le celle A1:A4hanno "A", "B", "C", "D", se B1:B3contengono "A", "C", "D", quindi voglio ottenere "B".

Ho controllato l'elenco delle funzioni ma non sono riuscito a capire come farlo.

Aggiornamento : con l'aiuto di Lance, la formula che mi è venuta in mente è stata:

FILTER(A1:A4, A1:A4<>B1, A1:A4<>B2, A1:A4<>B3)

Questo dà il risultato giusto, tuttavia ho ancora un problema. Il problema è che le mie cellule B1:Bxpossono espandersi. Gestisco una squadra sportiva e utilizzo un modulo di Google Documenti per l'invio da parte delle persone, selezionano il loro nome da un elenco di selezione e scelgono un pulsante di opzione "Sì" (posso giocare) o "No" (sono fuori). Quello che voglio ottenere qui è mostrare nel mio foglio di calcolo quelle persone che non hanno risposto. L'obiettivo è aggiornare automaticamente questo elenco dopo ogni nuovo invio. Sfortunatamente quando le nuove righe vengono riempite nel foglio di calcolo, la formula verrebbe rovinata. Non sono sicuro se esiste una soluzione per questo.

Aggiornamento 2 : ho trovato un problema. Ho copiato prima le celle da B1:Bxun'altra regione C1:Cx, quindi ho usato la formula sopra ma contro C1:Cx. Ora si B1:Bxespande anche , la formula è ancora valida.


La soluzione per il problema in espansione è utilizzare un intervallo denominato. Probabilmente ci vorrà del lavoro per ottenere il filtro giusto però.
Lance Roberts,

@Lance, ho trovato una soluzione alternativa e aggiornato di nuovo il mio post. Grazie.
grokus,

1
Grande domanda, l'ho trovata mentre cercavo questa risposta. La tua soluzione è abbastanza buona, ma penso di aver finalmente ottenuto esattamente quello che stavi cercando. Dai un'occhiata alla mia risposta qui sotto.
Anthony DiSanti,

Risposte:


5

WOW, ti avrei procurato una soluzione esatta, Google Docs è così frustrante. Script-loop City.

Puoi farlo con la funzione del foglio di lavoro FILTER, con arrayCondition_1 come una formula di funzioni che fornisce un valore vero per ogni riga che non è duplicata. Sono stato in grado di vedere che la funzione MATCH non poteva essere utilizzata.


1
Ho scoperto che usare Chrome è molto meglio quando si tratta di Google Documenti.
grokus,

Oggi è pazzo per me, ma se mi ricordo, mi prenderò una pausa in questa settimana prossima (se la risposta non è stata trovata da allora).
Lance Roberts,

va bene, sono stato in grado di utilizzare FILTER per ottenere i risultati desiderati. Grazie.
grokus,

@grokus, fantastico, dovresti pubblicare la formula che hai usato come riferimento per i futuri lettori.
Lance Roberts,

Ho aggiornato il mio post originale.
grokus,

4
=FILTER(A:A, NOT(COUNTIF(B:B, A:A)))

COUNTIFconta il numero di volte in cui ciascun giocatore nella colonna Aappare nella colonna Be restituisce un array di conteggi.

NOT lancia i numeri su valori booleani (vero o falso) e quindi prende l'inverso.

FILTERrimuove i giocatori che sono comparsi nell'elenco delle Brisposte delle colonne.

Il trucco qui è che NOTlancia i conteggi in booleani. Se un giocatore non ha risposto, apparirà 0 volte nell'elenco delle risposte. Se hanno risposto, appariranno 1 o più volte (forse un giocatore sta cercando di cambiare la propria risposta inviando il sondaggio una seconda volta). 0 lancia a Falsee tutti gli altri numeri espressi a True. Quindi i giocatori che hanno risposto eseguono la mappa Truee quelli a cui non hanno ancora risposto False. NOTquindi prende l'inverso, dandoti una maschera di quei giocatori che non hanno ancora risposto.

Questa soluzione supporta un elenco crescente di invii che possono includere righe vuote o invii duplicati. Per limitare l'intervallo specifico descritto nella domanda, utilizzare:=FILTER(A1:A4, NOT(COUNTIF(B:B,A1:A4)))


genius 20charlimit
Fadeway

0

Ecco un foglio di calcolo che mostra come farlo facilmente:

Imposta operazioni in Fogli Google

L'Unione è ={setA; setB}

La differenza è =filter(setA, iferror(MATCH(setA, setB, false)))

L'intersezione è =filter(setA; MATCH(setA, setB, false))

Spiegazione setAe setBpuò essere denominato intervalli oppure è possibile utilizzare la normale notazione di intervallo. Le gamme nominate rendono questo più chiaro.

Union è solo una nuova gamma creata giustapponendo entrambe le gamme.

Intersezione (prossimo più semplice) dipende ricerca di indici di setAin setBcui uscite, e filtrando Seta da questo.

La differenza è simile, ma i filtri setAselezionano solo i membri in cui non viene trovata l'indice setB.

Credito extra

L'unione con eliminazione duplicata è solo setA + (setB-setA) , quindi sopra

={setA;filter(setB, iserror(MATCH(setB,setA,false)))}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.