|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, sto cercando di applicare i ragionamenti delle istruzioni delle ultime due macro del 3D ad una variante della ricostruzione dati da tabellaPivot, precisamente: anziché lavorare su TABELLA2 e col.34... lavorare su TABELLA1 e TABELLA2. Mi aiuto con qualche immagine: in Foglio2 ho TABELLA1 e TABELLA2 rispettivamente da col.C a col.G e da col.H a col.AG (l'immagine mostra le tabelle filtrate sul cod.1 di col.C di TABELLA1 e sul cod.5 di col.R di TABELLA2,che ha 4 ricorrenze) in TabPivot la situazione vista sopra è così strutturata: Le col.C e T sono state NASCOSTE per comodità dato che in col.B e S sono state compilate tutte le righe delle 2 colonne di competenza, per permetterne la visione durante i filtri (come da vecchi 3D) La tabella di sin. va da col.E a col.Q (1^ parte di TABELLA2 di foglio2) e la tabella di des. (2^ parte di TABELLA2 di foglio2) va da col.V a col.AH Ho tolto dalle Impostazioni di campo i Subtotali Ecco le 2 macro che ho ricavato, partendo dalle due del 3D del link visto sopra Code:Public Cellrif As String Sub evidenziaInTabella() Dim Area As Range Application.ScreenUpdating = False Ur = Range("D" & Rows.Count).End(xlUp).Row criterio = InputBox("Inserisci il Criterio di Filtro") Select Case criterio Case 3 colore = 3 Case 4 colore = 41 Case 5 colore = 7 End Select col = 5 Colfin = 17 Riga = 1 For n = 1 To 2 Range(Cells(Riga, col), Cells(Ur, Colfin)).Select Selection.AutoFilter For i = 1 To 13 Selection.AutoFilter Field:=i, Criteria1:=criterio On Error Resume Next Set Area = Range(Cells(7, col), Cells(Ur, col)).SpecialCells(xlCellTypeVisible) On Error GoTo 0 If Area Is Nothing Then GoTo Fine End If For Each cl In Area cl.Select Call EvidenziaSorgente With Sheets("foglio3").Range(Cellrif) .Borders.LineStyle = xlContinuous .Borders.Weight = xlMedium .Borders.ColorIndex = colore End With Next cl Fine: Range("a1").Select Selection.AutoFilter Field:=i col = col + 1 Set Area = Nothing Next i Ur = Range("U" & Rows.Count).End(xlUp).Row col = 22 Colfin = 34 Next n Application.ScreenUpdating = True End Sub
Sub EvidenziaSorgente() With Sheets("TabPivot") Riga = ActiveCell.Row Select Case Riga Case 4 To 8999 Tab1 = 5 Case 9000 To 17999 Tab1 = 9001 Case 18000 To 26999 Tab1 = 18001 Case 27000 To 35999 Tab1 = 27001 Case 36000 To 44999 Tab1 = 36001 End Select col = ActiveCell.Column Select Case col Case 5 To 17 Y = 2 Z = 4 Case 22 To 34 Y = 19 Z = 21 End Select Nrtab1 = Cells(Tab1, 5).Value Nrtab2 = .Cells(6, col).Value Nr = .Cells(Riga, Y).Value Comp = .Cells(Riga, Z).Value End With With Sheets("foglio3") Set Area = .Range("C3", .Range("G3").End(xlDown)) ' le tabelle partono da riga 3 For Each cl In Area If cl.Value = Nr And Comp = .Cells(cl.Row, Nrtab2).Value Then Cellrif = .Cells(cl.Row, Nrtab2).Address Exit For End If Next End With Set Area = Nothing End Sub
Ometto di spiegare alcune cose ovvie scritte nelle macro... Segnalo che le tabelle di sin. e di des. di TabPivot pur iniziando dalla stessa riga (come da istruzione) durante il loro sviluppo assumono lunghezze diverse... come nell'immagine qui sotto Domanda: perché nel foglio3 (che è una copia di Foglio2 senza bordi e colori alle celle) NON mi vengono evidenziate giuste tutte le celle, ma solo quelle della prima parte della TABELLA2? Dipende forse dal fatto che le 2 tabelle di TabPivot non sono allineate per cui la scansione fatta dalle istruzioni della macro vanno in confusione oppure ho commesso qualche errore nell'istruire le nuove macro? Come al solito..... GRAZIE infinite, saluti eZio EDIT.svelato l'arcano: non c'è ERRORE nel lavoro delle macro... mi aiuto con un'immagine: in foglio3 il cod.86 di col.AF, riga17 viene evidenziato come codice di TABELLA2 che, filtrato con un codice di TABELLA1, ha avuto 4 ricorrenze (come richiesto dalla MsgBox compilata in foglio TabPivot). Il codice di TABELLA1 è cod.19 che in riga17 è segnalato come appartenete a col.C, mentre in realtà il cod.19 che genera le 4 ricorrenze col cod.86 di col.AF è in col.G A questo punto la mia domanda è: come faccio a fare rispettare, nella scansione che le macro fanno, la giusta colonna del codice di TABELLA1? Nell'esempio dell'immagine il cod.19 è in col.C, per cui la segnalazione fatta è sì corretta da un punto di vista esecutivo della macro :)) ma è fuorviante nella ricerca che debbo fare... in quanto i criteri che dovrei rispettare sarebbero: il cod.86 di col.AF di TABELLA2 filtrato col.cod.19 di col.C di TABELLA1 (o il cod.18 di col.D, o il cod.23 di col.E, o il cod.81 di col.F, o il cod.72 di col.G) ha prodotto 4 ricorrenze... qui però è terreno da fuoriclasse :))))))) :)) Grazie per l'enorme pazienza!! :))
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve 1) le due tabella non necessariamente devono essere lunghe allo stesso modo. sommando i valori uguali potresti avere in una tabella maggiori codici uguali rispetto all'altra. 2) la macro che dovrà evidenziare i dati leggendo tutta la tabella1 è un poì più laboriosa del codice fornito per la sola colonna AH. La soluzione che ho già elaborato ma non provato te la passo domani. PS. Evita di aggiungere informazioni ai vecchi post. Questi si danno per letti e non sempre l'occhio cade sulle aggiunte. Usa un nuovo post per ulteriori informazioni. Ho visto l'aggiunta ma credo di non aver capito il senso. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, Grazie del consiglio... ;) Commenta:Ho visto l'aggiunta ma credo di non aver capito il senso. Allora: in altre parole... 1)guardando l'immagine si ricava che in foglio2 il cod.5 di col.R (TABELLA2) filtrato col cod.1 di col.C (TABELLA1) ha 4 ricorrenze conseguentemente in foglio3 (che è una copia di foglio2 senza celle bordate e colorate...) Diagnosi: ESATTO, tutto combacia... 2) Ora invece guardando l'immagine si dovrebbe evincere che il cod.86 di col.AF (TABELLA2) se filtrato col cod.19 di col.C, o col cod.18 di col.D, o col cod.23 di col.E, o col cod.81 di col.F, o col cod.72 di col.G (TABELLA1) ha 4 ricorrenze Diagnosi: ERRATO, il cod.86 di col.AF di TABELLA2 produce sì 4 ricorrenze con un cod.19, ma di col.G e non di col.C di TABELLA1... quindi non soddisfa affatto i criteri della mia ricerCa, ma anzi li confonde assai... Guardando in TabPivot: Osservando in foglio3 i codici filtrati (in modo da evidenziare bene il qui pro quo) Come si vede bene, il cod.86 non è neppure evidenziato... qualcosa mi sfugge nel dare le istruzioni alle macro. Spero di aver chiarito il dettaglio...
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve quelle che seguono sono le macro modificate per eseguire il lavoro di evidenziazione su tutta la tabella 1 Code: Sub evidenziaInTabella_x_Tabella1() Dim Area As Range If ActiveSheet.PivotTables.Count < 3 Then MsgBox ("OPERAZIONE NON PERMESSA" & vbCrLf _ & " Il foglio è filtrato per la sola colonna AH") Exit Sub End If Tabella = InputBox("dimmi Numero Tabella Pivot") Select Case Tabella Case 1 Ur = Range("D999").End(xlUp).Row Ur2 = Range("U999").End(xlUp).Row riga = 3 Case 2 Ur = Range("D1999").End(xlUp).Row Ur2 = Range("U1999").End(xlUp).Row riga = 999 Case 3 Ur = Range("D2999").End(xlUp).Row Ur2 = Range("U2999").End(xlUp).Row riga = 1999 Case 4 Ur = Range("D3999").End(xlUp).Row Ur2 = Range("U3999").End(xlUp).Row riga = 2999 Case 5 Ur = Range("D4999").End(xlUp).Row Ur2 = Range("U4999").End(xlUp).Row riga = 3999 End Select Application.ScreenUpdating = False criterio = InputBox("Criterio Filtro") Select Case criterio Case 3 colore = 3 Case 4 colore = 4 Case 5 colore = 7 End Select col = 5 Colfin = 17 For n = 1 To 2 Range(Cells(riga, col), Cells(Ur, Colfin)).Select Selection.AutoFilter For i = 1 To 13 Selection.AutoFilter Field:=i, Criteria1:=criterio On Error Resume Next Set Area = Range(Cells(riga + 4, col), Cells(Ur, col)).SpecialCells(xlCellTypeVisible) On Error GoTo 0 If Area Is Nothing Then GoTo Fine End If For Each cl In Area cl.Select Call EvidenziaSorgente_1_5 With Sheets("Foglio2").Range(Cellrif) .Borders.LineStyle = xlContinuous .Borders.Weight = xlMedium .Borders.ColorIndex = colore End With Next cl Fine: Range("a1").Select Selection.AutoFilter Field:=i col = col + 1 Set Area = Nothing Next i Ur = Ur2 col = 22 Colfin = 34 Next n Application.ScreenUpdating = True End Sub
Sub EvidenziaSorgente_1_5() With Sheets("TabPivot") riga = ActiveCell.Row Select Case riga Case 4 To 999 Tab1 = 5 Case 1000 To 1999 Tab1 = 1001 Case 2000 To 2999 Tab1 = 2001 Case 3000 To 3999 Tab1 = 3001 Case 4000 To 4999 Tab1 = 4001 End Select col = ActiveCell.Column Select Case col Case 5 To 17 Y = 2 Z = 4 Case 22 To 34 Y = 19 Z = 21 End Select Nrtab1 = Cells(Tab1, 5).Value Nrtab2 = .Cells(6, col).Value Nr = .Cells(riga, Y).Value Comp = .Cells(riga, Z).Value End With With Sheets("foglio2") Set Area2 = .Range("C2", .Range("G2").End(xlDown)) For Each cl2 In Area2 If cl2.Value = Nr And Comp = .Cells(cl2.Row, Nrtab2).Value Then Cellrif = .Cells(cl2.Row, Nrtab2).Address Exit For End If Next End With Set Area2 = Nothing End Sub
Modifica tu i riferimenti delle aree delle Tabelle Pivot le ho adattate al mio file di esempio. Questa macro ti chiederà di scegliere su quale tabella Pivot Vuoi lavorare (da 1 a 5) prova e fa sapere. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, finalmente sono rientrato alla base... ho avuto una serie di imprevisti legati a questo tempo da lupi... e non avevo il mio pc a disposizione per applicare le tue nuove creature... chiedo scusa per l'assenza. Ho provato ad applicare le macro variando le coordinate per adattarle al range delle mie tabelle. In molti casi il risultato è esatto, le celle evidenziate corrispondono ai criteri indicati nelle MsgBoxes, ma in alcune circostanze qualcosa va in confusione perché alla cella evidenziata non corrispondono i criteri di ricerca... Mi spiego meglio: nell'immagine riferita al foglio2 delle 2 macro di cui sopra, risultato delle MsgBox 1) Tabella Pivot 2 - 2) Criterio Filtro 4 c'è evidenziato anche il cod.11 (che qui ho bordato di rosso) Ora, mentre i cod.44 e 72 corrispondono (ovvero in sett.72'114 se filtro il cod.62 nella sua colonna D e poi filtro nella sua colonna R il 44 ottengo 4 ricorrenze...e idem per il 72) per il cod.11 non è esatto. Infatti il cod.11 dà 4 ricorrenze col cod.73 se filtrato in col.D, cod.73 che è sì nel sett.72'114, ma è in col.E... quindi è relativo alla Tabella Pivot 3, non alla 2. In altre parole il cod.11 nel sett.72'114- con i criteri di ricerca inseriti nelle MsgBoxes- Tabella Pivot: 2; Criterio Filtro: 4- non dovrebbe essere evidenziato... Ho ricontrollato più volte le coordinate delle mie tabelle per vedere se c'è qualche incongruenza, ma non ne ho trovate... C'è quindi qualche istruzione da sistemare? Grazie infinite, saluti eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve nel mio file dove provo le macro non ottengo l'errore che mi dici. Forse se mi mandi una porzione del tuo Foglio2 posso fare delle prove più attendibili. Cerca di limitarlo a 200/300 righe massimo. saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, ho riscontrato che le situazioni anomale avvengono solo in circostanze identiche a quella delle immagini foglio3 (copia di foglio2 ripulita dalle celle evidenziate, in cui viene riversato il risultato del lavoro delle 2 macro) foglio2 (su cui è costruito il foglio TabPivot) e cioè quando- nel foglio3- in un Sett. ove viene evidenziato in TABELLA2 un codice che, filtrato con il relativo codice di TABELLA1 appartenente alla colonna che genera la Tabella Pivot di cui alla MsgBox "dimmi Numero Tabella Pivot" ricercandone il numero di Ricorrenze inserito nella MsgBox "Criterio Filtro", è presente tra i codici di TABELLA1 il codice filtrato nel Sett. di riferimento. Nell'esempio sopra: -se filtro il cod.44 di col.11 di TABELLA2 col cod.62 di col.2 di TABELLA1 ottengo4 Ricorrenze, come avevo richiesto nelle 2 MsgBoxes -se filtro il cod.72 di col.14 di TABELLA2 col cod.62 di col.2 di TABELLA1 ottengo4 Ricorrenze, come avevo richiesto nelle 2 MsgBoxes -ma se filtro il cod.11 di col.26 di TABELLA2 col cod.62 di col.2 di TABELLA1 NON ottengo4 Ricorrenze, come avevo richiesto nelle 2 MsgBoxes, ma 3 Ricorrenze... (?!?) cioè viene erroneamente evidenziato in foglio3 il cod.11 di col.26 di TABELLA2 quale codice che, filtrato con il cod.62 di TABELLA1 dovrebbe dare 4 Ricorrenze (nei campi chiesti dalle MsgBoxes: TabellaPivot 2 e Ricorrenze 4). In realtà il cod.11 di quella colonna dà 4 Ricorrenze se filtrato con il cod.73 (che è presente nel Sett.72'114, ma in 3^ colonna di TABELLA1) in 2^ colonna di TABELLA1. Qualche istruzione và in confusione in quella circostanza particolare... Preciso che nel foglio TabPivot è tutto giusto... Non v'è traccia in col.34 di quelle 4 ricorrenze del cod.11 di col.21 filtrato col cod.62 di col.19 della 2^ tabellaPivot, bensì delle 4 ricorrenze, in col.34, del cod.11 di col.21 filtrato col cod.73 di col.19 della 2^ tabellaPivot.... Grazie infinite, saluti eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve non posso comprendere il problema se postato con immagini che non consentono una comparazione nella visibilità. Per capire il problema ho bisogno di verificare le macro con una porzione del tuo file. Posso solo dirti cosa fanno le macro per veder se magari afrontano il problema in modo sbagliato. la macro Sub evidenziaInTabella_x_Tabella1() prende la tabella Pivot dichiarata es la 3 che contiene le prime 13 colonne di tabella2 del foglio2 controlla quali numeri soddisfano il criterio di ricerca immesso con la Inputbox se i criteri sono soddisfatti, cerca nella Tabella1 colonna 5 del foglio2 i relativi riferimenti di Tabella1 e tabella2 evidenziandoli. escussa la tabellaPivot3 passa alla TabellaPivot8 che non è altro la seconda parte della tabella2 di foglio2 questo è il meccanismo. fa sapere saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, ecco il file-prova...spero di averti dato tutti gli elementi che ti servono per una diagnosi. Grazie infinite, saluti eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve Tu dici che il Foglio2 e il foglio3 sia uno la copia esatta dell'altra. Sei sicuro di questo?? Prova a filtrare le colonne D di entrambi i fogli per il codice 73 e vedi il risultato. NB. nel file che mi hai mandato vedo che non sono state fatte le modifiche alle macro che ti avevo passato. questa riga è importante che ci sia nella macro CreaPivot2 ActiveSheet.PivotTables("Tabella_pivot" & Pr).PivotFields("Numero").Subtotals = _ Array(False, False, False, False, False, False, False, False, False, False, False, False) così come questa andava cambiata come segue: Sub Per_filtro() With Sheets("TabPivot") uriga = .Range("D" & Rows.Count).End(xlUp).Row col = 3 col2 = 2 For i = 1 To 2 For n = 6 To uriga If IsNumeric(.Cells(n, col)) And .Cells(n, col).Value > 0 Then .Cells(n, col2).Value = .Cells(n, col) Else If .Cells(n, col) = "" And .Cells(n, col + 1) <> "" Then .Cells(n, col2).Value = .Cells(n - 1, col2) End If End If Next n col = 20 col2 = 19 Next i End With End Sub saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, Ooooooooops!!... scusa tanto... hai ragione! Non ho importato correttamente dal file originale il Foglio3 adattato al file-prova. Chiedo scusa! Ho provveduto anche ad aggiornare le 2 macro con le istruzioni che hai giustamente evidenziato... Ora "dovrebbe" essere tutto a posto. (condizionale d'obbligo) Il file aggiornato è allo stesso link ;)) Ma purtroppo il problema persiste... Grazie infinite, anche per...l'infinita pazienza, Saluti eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve scoperto l'arcano!! il problema era sotto gli occhi grande come una casa. L'errore è il frutto di una modifica improvvida. In effetti la macro non analizzava solo la colonna relativa alla tabella1 ma scansionava tutte e 5 le colonne e da qui l'errore. Quello che segue è la modifica da apportare alle macro: Attenzione alle modifiche: è stata aggiunta una variabile pubblica "Coltab" Code: Public Cellrif As String Public Coltab As Integer Sub evidenziaInTabella_x_Tabella1() Dim Area As Range If ActiveSheet.PivotTables.Count < 3 Then MsgBox ("OPERAZIONE NON PERMESSA" & vbCrLf _ & " Il foglio è filtrato per la sola colonna AH") Exit Sub End If Tabella = InputBox("dimmi Numero Tabella Pivot") Select Case Tabella Case 1 Ur = Range("D8999").End(xlUp).Row Ur2 = Range("U8999").End(xlUp).Row Coltab = 3 riga = 3 Case 2 Ur = Range("D17999").End(xlUp).Row Ur2 = Range("U17999").End(xlUp).Row Coltab = 4 riga = 8999 Case 3 Ur = Range("D26999").End(xlUp).Row Ur2 = Range("U26999").End(xlUp).Row Coltab = 5 riga = 17999 Case 4 Ur = Range("D35999").End(xlUp).Row Ur2 = Range("U35999").End(xlUp).Row Coltab = 6 riga = 26999 Case 5 Ur = Range("D44999").End(xlUp).Row Ur2 = Range("U44999").End(xlUp).Row Coltab = 7 riga = 35999 End Select Application.ScreenUpdating = False criterio = InputBox("Criterio Filtro") Select Case criterio Case 3 colore = 3 Case 4 colore = 4 Case 5 colore = 7 End Select col = 5 Colfin = 17 For n = 1 To 2 Range(Cells(riga, col), Cells(Ur, Colfin)).Select Selection.AutoFilter For i = 1 To 13 Selection.AutoFilter Field:=i, Criteria1:=criterio On Error Resume Next Set Area = Range(Cells(riga + 4, col), Cells(Ur, col)).SpecialCells(xlCellTypeVisible) On Error GoTo 0 If Area Is Nothing Then GoTo Fine End If For Each cl In Area cl.Select Call EvidenziaSorgente_1_5 With Sheets("Foglio3").Range(Cellrif) .Borders.LineStyle = xlContinuous .Borders.Weight = xlMedium .Borders.ColorIndex = colore End With Next cl Fine: Range("a1").Select Selection.AutoFilter Field:=i col = col + 1 Set Area = Nothing Next i Ur = Ur2 col = 22 Colfin = 34 Next n Application.ScreenUpdating = True End Sub
quella che segue è la modifica alla seconda macro: Code: Sub EvidenziaSorgente_1_5() With Sheets("TabPivot") riga = ActiveCell.Row Select Case riga Case 4 To 8999 Tab1 = 5 Case 9000 To 17999 Tab1 = 9001 Case 18000 To 26999 Tab1 = 18001 Case 27000 To 35999 Tab1 = 27001 Case 36000 To 44999 Tab1 = 36001 End Select col = ActiveCell.Column Select Case col Case 5 To 17 Y = 2 Z = 4 Case 22 To 34 Y = 19 Z = 21 End Select Nrtab1 = Cells(Tab1, 5).Value Nrtab2 = .Cells(6, col).Value Nr = .Cells(riga, Y).Value Comp = .Cells(riga, Z).Value End With With Sheets("Foglio3") Set Area2 = Range(.Cells(3, Coltab), .Cells(3, Coltab).End(xlDown)) For Each cl2 In Area2 If cl2.Value = Nr And Comp = .Cells(cl2.Row, Nrtab2).Value Then Cellrif = .Cells(cl2.Row, Nrtab2).Address Exit For End If Next End With Set Area2 = Nothing End Sub
in questa riga :Set Area2 = .Range("C2", .Range("G2").End(xlDown)) che doveva essere: Set Area2 = Range(.Cells(3, Coltab), .Cells(3, Coltab).End(xlDown)) c'era il madornale errore. Chiedo venia... Provalo e fa sapere saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
Ciao, Tu chiedi venia a me?? :))) E allora io cosa dovrei chedere......?? :D Ho sostituito in toto le 2 macro nel file (compresa la variabile pubblica "Coltab"), alle richieste di "dimmi Numero Tabella Pivot" inserisco 2 e di "Criterio Filtro" inserisco 4ma purtroppo dà il seguente errore: Purtroppo le mie conoscenze in materia sono troppo limitate... non riesco ad individuare dove l'istruzione và in confusione Grazie assai, Saluti eZio
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve controlla nei moduli, hai dichiarato due volte la variabile pubblica Cellrif è questa la natura dell'errore saluti Giap
|
|
Rank: AiutAmico
Iscritto dal : 5/10/2010 Posts: 723
|
a10n11 ha scritto:salve controlla nei moduli, hai dichiarato due volte la variabile pubblica Cellrif è questa la natura dell'errore saluti Giap Ciao, ....CENTRO!! è sorprendente come sono delicate queste macro... non ammettono distrazioni, tipiche dei pasticcioni...ahahahah ma anche degli ignoranti come me (che però hanno tanta voglia di imparare...) Ora vado a nanna che sono assai stanco :)) ma domani mattina di buon'ora faccio i controlli, anche se penso che ora è tutto a posto Grazie infinite, Saluti eZio Nota importante: se non dovessimo più sentirci... Buone Feste di tutto cuore a Te e Famiglia!! e Grazie ancora per tutto l'immenso lavoro che stai facendo per me... ;))
|
|
Guest |