Stopp Excel fra automatisk konvertere visse tekstverdier til datoer

stemmer
428

Er det noen som tilfeldigvis vet om det er et tegn jeg kan legge til min csv for et bestemt felt slik at Excel ikke prøve å konvertere den til en date?

Jeg prøver å skrive en CSV-fil fra min søknad og en av verdiene skjer å se nok som en dato som Excel automatisk konvertere den fra tekst til en dato. Jeg har prøvd å sette alle mine tekstfelt (inkludert en som ser ut som en date) i doble anførselstegn, men det har ingen effekt.

Publisert på 02/10/2008 klokken 21:30
kilden bruker
På andre språk...                            


35 svar

stemmer
0

Hvis du putter en omvendt komma i starten av feltet, vil det bli tolket som tekst.

Eksempel: 25/12/2008blir'25/12/2008

Du er også i stand til å velge en felttype når du importerer.

Svarte 02/10/2008 kl. 21:33
kilden bruker

stemmer
299

Jeg har funnet ut at å sette en '=' før de doble anførselstegn vil oppnå det du ønsker. Det tvinger dataene til å være tekst.

f.eks. = "2008-10-03", = "mer tekst"

EDIT (i henhold til andre innlegg) : på grunn av feil i Excel 2007 bemerket av Jeffiekins en bør bruke løsningen foreslått av Andrew :"=""2008-10-03"""

Svarte 02/10/2008 kl. 21:33
kilden bruker

stemmer
8

(Forutsatt Excel 2003 ...)

Når du bruker tekst-til-kolonner Wizard har, i trinn 3, kan du diktere datatypen for hver av kolonnene. Klikk på kolonnen i forhåndsvisningen og endre dårlig oppførsel kolonne fra "Generelt" til "Tekst".

Svarte 02/10/2008 kl. 21:34
kilden bruker

stemmer
-1

En alternativ metode:

Konvertere formatet på kolonnen du vil endre til 'Tekst'. Velg alle cellene du ønsker å bevare, kopi. Uten deaktivere disse kolonnene, klikker du på "Rediger> Lim> Som verdier"

Lagre som CSV. Legg merke til at dette må være det siste du gjør til filen fordi når du åpner den, vil den formatere seg som datoer siden celleformater ikke kan lagres i CSV-filer.

Svarte 02/10/2008 kl. 21:43
kilden bruker

stemmer
27

ADVARSEL: Excel '07 (minst) har en (nother) bug: Hvis det er et komma i innholdet i et felt, betyr det ikke analysere = "feltet, innhold" riktig, men heller setter alt etter komma inn i følgende felt, uavhengig av anførselstegn.

Den eneste løsningen jeg har funnet som fungerer er å eliminere = når feltinnholdet inkluderer komma.

Dette kan bety at det er noen områder som er umulig å representere akkurat "riktig" i Excel, men nå jeg stoler ingen er også overrasket.

Svarte 10/12/2010 kl. 17:58
kilden bruker

stemmer
-1
SELECT CONCAT('\'',NOW(),'\''), firstname, lastname 
FROM your_table
INTO OUTFILE 'export.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '\"' 
LINES TERMINATED BY '\n'
Svarte 24/02/2011 kl. 06:10
kilden bruker

stemmer
94

Arbeide ut av Jarod løsning og saken brakt opp av Jeffiekins, kan du endre

"May 16, 2011"

til

"=""May 16, 2011"""
Svarte 16/05/2011 kl. 19:48
kilden bruker

stemmer
9

Her er en enkel metode vi bruker på jobb her ved generering CSV-filen i første omgang, det endrer verdiene litt så det er ikke egnet i alle programmer:

Foranstille en plass til alle verdier i csv

Denne plassen vil bli strippet av ved excel fra tallene som "1"," 2.3" og '-2.9e4', men vil forbli på datoer som '01/10/1993' og booleans som 'true', stoppe dem blir omdannet til excel interne datatyper.

Den stopper også anførselstegn blir zapped på lese i, så en idiotsikker måte å gjøre teksten i en csv forblir uendret ved excel SELV OM er litt tekst som "3,1415" er å omgi det med anførselstegn og foranstille hele strengen med et mellomrom, dvs. (ved hjelp av enkle anførselstegn for å vise hva du ville skrive) ' '3,1415''. Deretter i excel du alltid har den opprinnelige strengen, bortsett fra at det er omgitt av anførselstegn og prepended av en plass slik at du trenger å ta hensyn til de i noen formler etc.

Svarte 28/01/2013 kl. 15:05
kilden bruker

stemmer
52

Jeg hadde et lignende problem, og dette er den løsningen som hjalp meg uten å måtte redigere csv filinnholdet:

Hvis du har fleksibilitet til å gi navn til filen noe annet enn "CSV", kan du nevne det med en "txt" forlengelse, for eksempel 'minfil.txt' eller 'Myfile.csv.txt'. Så når du åpner den i Excel (ikke ved å dra og slippe, men ved hjelp av Fil-> Åpne eller sist brukte filene listen), Excel vil gi deg en "Text Import Wizard".

I den første siden i veiviseren, velg "skilletegn" for filtypen.

I den andre siden i veiviseren velger "" som skilletegn og også velge teksten kvalifiseringen hvis du har omgitt dine verdier av sitater

I den tredje siden, velger hver kolonne individuelt og gi hver type "Text" i stedet for "General" for å stoppe Excel får tilgang til dine data.

Håper dette hjelper deg eller noen med et lignende problem!

Svarte 21/02/2013 kl. 02:06
kilden bruker

stemmer
110

Jeg vet dette er en gammel spørsmålet, men problemet er ikke går bort snart. CSV-filer er enkelt å generere fra de fleste programmeringsspråk, ganske små, lesbar i en knase med en ren tekst editor, og allestedsnærværende.

Problemet er ikke bare med datoer i tekstfelt, men noe numerisk blir også konvertert fra tekst til tall. Et par eksempler der dette er problematisk:

  • ZIP / postnummer
  • telefonnumre
  • offentlige ID-numre

som noen ganger kan starte med en eller flere nuller (0), som blir kastet bort når konvertert til numeriske. Eller verdien inneholder tegn som kan forveksles med matematiske operatorer (som i dato: /, -).

To saker som jeg kan tenke på at "prepending =" løsning, som nevnt tidligere, er kanskje ikke ideelt er

  • hvor filen kan importeres til en annen enn MS Excel-programmet (MS Word utskriftsfletting funksjon kommer til hjernen),
  • der menneske lesbarhet kan være viktig.

Min hack for å omgå dette

Hvis en pre / føyer til en ikke-numerisk og / eller ikke-dato karakter i verdien, verdien vil bli gjenkjent som tekst og ikke omdannet. En ikke-utskrift tegn ville være bra som det ikke vil endre den viste verdien. Imidlertid ikke vanlig gamle mellomromstegnet (\ s, ASCII 32) ikke jobber for dette som det blir kappet av ved Excel og deretter verdien fortsatt blir konvertert. Men det finnes ulike andre utskrift og ikke-utskrift mellomrom som vil fungere godt. Den enkleste er imidlertid å legge til (legg etter) den enkle tabulatortegn (\ t, ASCII 9).

Fordeler med denne tilnærmingen:

  • Tilgjengelig fra tastatur eller med en lett-å-huske ASCII-kode (9),
  • Det plager ikke innførsel,
  • Normalt ikke bry Mail Merge resultater (avhengig av malen layout - men normalt er det bare legger en bred plass på slutten av en linje). (Dersom dette er imidlertid et problem, se på andre figurer f.eks null-bredde mellomrom (ZWSP, Unicode U + 200B)
  • er ikke en stor hindring når du viser CSV i Notepad (etc),
  • og kan fjernes ved søk / erstatt i Excel (eller Notepad etc).
  • Du trenger ikke å importere CSV, men kan ganske enkelt dobbeltklikk for å åpne CSV i Excel.

Hvis det er en grunn til at du ikke ønsker å bruke kategorien, se i et Unicode tabell for noe annet passende.

Et annet alternativ

kan være å generere XML-filer, for der et visst format også er akseptert for import av nyere MS Excel-versjoner, og som gir mange flere muligheter som ligner på XLS-format, men jeg har ikke erfaring med dette.

Så er det ulike alternativer. Avhengig av krav / søknad, kan man være bedre enn en annen.


Addisjon

Det må sies at nyere versjoner (2013+) av MS Excel ikke åpne CSV i regnearkformat noe mer - enda en speedbump i en arbeidsflyt gjør Excel mindre nyttig ... Minst, instruksjoner finnes for å komme rundt det. Se for eksempel denne Stackoverflow: Hvordan skal vise CSV filer i Excel 2013? .

Svarte 27/02/2013 kl. 05:16
kilden bruker

stemmer
-3

CSV - kommadelte verdier. Bare opprette / redigere gjennom tekst editor i stedet for xls / xlsx / exel. I redigering kan du sette dato i ønsket format, og det må holdes intakt. Dette er forutsatt samme filen blir deretter bli behandlet auto.

Svarte 03/05/2013 kl. 03:55
kilden bruker

stemmer
2

Jeg har jus denne uken kommet over denne konvensjonen, som synes å være en utmerket måte, men jeg kan ikke finne det refereres til hvor som helst. Er noen kjent med det? Kan du sitere en kilde for det? Jeg har ikke sett i timesvis, men håper noen vil gjenkjenne denne tilnærmingen.

Eksempel 1: = ( "012345678905") vises som 012345678905

Eksempel 2: = ( "") 1954-12-12 vises som 1954-12-12 , ikke 12/12/1954 .

Svarte 12/06/2013 kl. 22:34
kilden bruker

stemmer
7

Dette er en eneste måten jeg vet hvordan du skal gjøre dette uten å rote inni selve filen. Som vanlig med Excel, lærte jeg dette ved å slå hodet mitt på skrivebordet i timevis.

Endre CSV filtypen til TXT; dette vil stoppe Excel fra auto-konvertere filen når den åpnes. Her er hvordan jeg gjør det: åpen Excel til et tomt regneark, lukke blankt ark, deretter Fil => Åpne, og velg filen med filtypen .txt. Dette tvinger Excel for å åpne "Text Import Wizard" hvor det vil spørre deg spørsmål om hvordan du vil at den skal tolke filen. Først velger du din skilletegn (komma, tab, etc ...), deretter (her er den viktigste delen) du velger et sett kolonner med kolonner og velger formatering. Hvis du ønsker nøyaktig hva som er i filen og velg "Tekst" og Excel vil vise akkurat hva som er mellom skilletegn.

Svarte 27/08/2013 kl. 13:08
kilden bruker

stemmer
15

I Excel 2010 åpner et nytt ark. På Data bånd klikk "Hent eksterne data fra tekst". Velg CSV-filen og klikk "Åpne". Klikk "Next". Fjern merket "Tab", plassere en hake ved siden av "Comma", og klikk "Next". Klikk hvor som helst på den første kolonnen. Mens du holder shift-tasten dra glidebryteren over til du kan klikke på den siste kolonnen, og slipp deretter Skift-tasten. Klikk på "teksten" -knappen deretter "Finish"

Alle kolonnene vil bli importert som tekst, akkurat som de var i CSV-filen.

Svarte 06/02/2014 kl. 18:15
kilden bruker

stemmer
2

Hei Jeg har det samme problemet,

Jeg skriver dette vbscipt å opprette en CSV-fil. Den nye CSV-fil vil ha en plass i font av hvert felt, så excel vil forstå det som tekst.

Så du oppretter en vbs-fil med koden under (for eksempel Modify_CSV.vbs), lagre og lukke den. Dra og slipp den opprinnelige filen til din VBScript-fil. Det vil skape en ny fil med "SPACE_ADDED" for å sende inn navn på samme sted.

Set objArgs = WScript.Arguments

Set objFso = createobject("scripting.filesystemobject")

dim objTextFile
dim arrStr ' an array to hold the text content
dim sLine  ' holding text to write to new file

'Looping through all dropped file
For t = 0 to objArgs.Count - 1
    ' Input Path
    inPath = objFso.GetFile(wscript.arguments.item(t))

    ' OutPut Path
    outPath = replace(inPath, objFso.GetFileName(inPath), left(objFso.GetFileName(inPath), InStrRev(objFso.GetFileName(inPath),".") - 1) & "_SPACE_ADDED.csv")

    ' Read the file
    set objTextFile = objFso.OpenTextFile(inPath)


    'Now Creating the file can overwrite exiting file
    set aNewFile = objFso.CreateTextFile(outPath, True) 
    aNewFile.Close  

    'Open the file to appending data
    set aNewFile = objFso.OpenTextFile(outPath, 8) '2=Open for writing 8 for appending

    ' Reading data and writing it to new file
    Do while NOT objTextFile.AtEndOfStream
        arrStr = split(objTextFile.ReadLine,",")

        sLine = ""  'Clear previous data

        For i=lbound(arrStr) to ubound(arrStr)
            sLine = sLine + " " + arrStr(i) + ","
        Next

        'Writing data to new file
        aNewFile.WriteLine left(sLine, len(sLine)-1) 'Get rid of that extra comma from the loop


    Loop

    'Closing new file
    aNewFile.Close  

Next ' This is for next file

set aNewFile=nothing
set objFso = nothing
set objArgs = nothing
Svarte 20/02/2014 kl. 03:37
kilden bruker

stemmer
16

Mens du lager en streng som skal skrives til min CSV-filen i C # Jeg måtte formatere det på denne måten:

"=\"" + myVariable + "\""
Svarte 21/04/2014 kl. 11:09
kilden bruker

stemmer
0

Ok funnet en enkel måte å gjøre dette i Excel 2003 gjennom 2007. Åpne et tomt xls arbeidsbok. Deretter går du til Data-menyen, importere eksterne data. Velg csv-fil. Gå gjennom veiviseren og deretter i "kolonnedataformat" velge en kolonne som må bli tvunget til å "text". Dette vil importere at hele kolonnen som en tekstformat hindre Excel fra å prøve å behandle eventuelle spesifikke celler som en dato.

Svarte 05/05/2014 kl. 23:14
kilden bruker

stemmer
3

Det er ikke Excel. Windows gjenkjenner formelen, data en dato og autocorrects. Du må endre Windows-innstillinger.

"Control Panel" (-> "Bytt til klassisk visning") -> "for region og språk" -> fanen "Regionale Options" -> "Tilpass ..." -> kategorien "tall" -> Og så endre symbolene henhold til hva du vil.

http://www.pcreview.co.uk/forums/enable-disable-auto-convert-number-date-t3791902.html

Det vil fungere på datamaskinen, hvis disse innstillingene ikke er endret for eksempel på kundenes datamaskin de vil se datoer i stedet for data.

Svarte 08/05/2014 kl. 09:51
kilden bruker

stemmer
0

Prefixing plass i anførselstegn løst problemet !!

Jeg hadde data som "7/8" i en av CSV-filen kolonner og MS-Excel ble konvertere den til dags dato som "07-Aug". Men med "Libreoffice Calc" det var ingen problem.

For å løse dette, jeg bare prefiks mellomrom (ekstra plass før 7) som "7/8" og det fungerte for meg. Dette er testet for Excel-2007.

Svarte 21/10/2014 kl. 13:19
kilden bruker

stemmer
2

Uten å endre CSV-filen kan du:

  1. Endre excel Formater celler alternativ til "tekst"
  2. Deretter bruke "Text Import Wizard" for å definere csv celler.
  3. Når importert slette data
  4. så bare lim som ren tekst

excel vil formatere og skille csv celler som tekst formatert ignorerer auto datoformater.

Slag av en dum arbeid rundt, men det slår endre csv data før du importerer. Andy Baird og Richard slags unngikk til denne metoden, men tapte et par viktige skritt.

Svarte 30/03/2015 kl. 18:00
kilden bruker

stemmer
1

Jeg vet dette er en gammel tråd. For de som er som meg, som fortsatt har dette problemet ved hjelp av office 2013 via Powershell com objekt kan bruke Opentext metoden . Problemet er at denne metoden har mange argumenter, som er noen ganger gjensidig utelukkende. For å løse dette problemet kan du bruke Invoke-namedparameter metoden introdusert i dette innlegget . Et eksempel kan være

$ex = New-Object -com "Excel.Application"
$ex.visible = $true
$csv = "path\to\your\csv.csv"
Invoke-NamedParameter ($ex.workbooks) "opentext" @{"filename"=$csv; "Semicolon"= $true}

Dessverre oppdaget jeg nettopp at denne metoden bryter liksom csv parsing når cellene inneholder linjeskift. Dette støttes av csv men Microsofts implementering synes å være avlyttet. Også det gjorde liksom ikke oppdage tyske spesifikke tegn. Gir det riktige kulturen endret ikke dette behaveiour. Alle filer (CSV og script) er lagret med utf8 koding. Først skrev jeg følgende kode for å sette csv celle for celle.

$ex = New-Object -com "Excel.Application"
$ex.visible = $true;
$csv = "path\to\your\csv.csv";
$ex.workbooks.add();
$ex.activeWorkbook.activeSheet.Cells.NumberFormat = "@";
$data = import-csv $csv -encoding utf8 -delimiter ";"; 
$row = 1; 
$data | %{ $obj = $_; $col = 1; $_.psobject.properties.Name |%{if($row -eq1){$ex.ActiveWorkbook.activeSheet.Cells.item($row,$col).Value2= $_ };$ex.ActiveWorkbook.activeSheet.Cells.item($row+1,$col).Value2 =$obj.$_; $col++ }; $row++;}

Men dette er ekstremt treg, og det er derfor jeg så etter et alternativ. Appearently Excel kan du angi verdiene av et celleområde med en matrise. Så jeg brukte algoritmen i denne bloggen til å forvandle csv i en multiarray.

function csvToExcel($csv,$delimiter){
     $a = New-Object -com "Excel.Application"
     $a.visible = $true

    $a.workbooks.add()
     $a.activeWorkbook.activeSheet.Cells.NumberFormat = "@"
     $data = import-csv -delimiter $delimiter $csv; 
     $array = ($data |ConvertTo-MultiArray).Value
     $starta = [int][char]'a' - 1
     if ($array.GetLength(1) -gt 26) {
         $col = [char]([int][math]::Floor($array.GetLength(1)/26) + $starta) + [char](($array.GetLength(1)%26) + $Starta)
     } else {
         $col = [char]($array.GetLength(1) + $starta)
     }
     $range = $a.activeWorkbook.activeSheet.Range("a1:"+$col+""+$array.GetLength(0))
     $range.value2 = $array;
     $range.Columns.AutoFit();
     $range.Rows.AutoFit();
     $range.Cells.HorizontalAlignment = -4131
     $range.Cells.VerticalAlignment = -4160
}

 function ConvertTo-MultiArray {
     param(
         [Parameter(Mandatory=$true, Position=1, ValueFromPipeline=$true)]
         [PSObject[]]$InputObject
     )
     BEGIN {
         $objects = @()
         [ref]$array = [ref]$null
     }
     Process {
         $objects += $InputObject
     }
     END {
         $properties = $objects[0].psobject.properties |%{$_.name}
         $array.Value = New-Object 'object[,]' ($objects.Count+1),$properties.count
         # i = row and j = column
         $j = 0
         $properties |%{
             $array.Value[0,$j] = $_.tostring()
             $j++
         }
         $i = 1
         $objects |% {
             $item = $_
             $j = 0
             $properties | % {
                 if ($item.($_) -eq $null) {
                     $array.value[$i,$j] = ""
                 }
                 else {
                     $array.value[$i,$j] = $item.($_).tostring()
                 }
                 $j++
             }
             $i++
         }
         $array
     } 
} 
csvToExcel "storage_stats.csv" ";"

Du kan bruke koden ovenfor som er det skal konvertere alle CSVs i excel. Bare endre banen til csv og skilletegn nederst.

Svarte 17/04/2015 kl. 07:19
kilden bruker

stemmer
0

Dette problemet er fortsatt til stede i Mac Office 2011 og Office 2013, kan jeg ikke hindre at det skjer. Det virker slik grunnleggende ting.

I mitt tilfelle hadde jeg verdier som "12" og "7 - 12" innenfor CSV vedlagte riktig innenfor anførselstegn, dette automatisk konverterer til en dato innen excel, hvis du prøver deretter konvertere den til bare ren tekst du vil få en rekke fremstilling av datoen for eksempel 43768. i tillegg formateres på det store antall som finnes i strekkoder og EAN-numre til 123E + tallene igjen som ikke kan konverteres tilbake.

Jeg har funnet ut at Google Disk Google Sheets doesnt konvertere tallene til datoer. Strekkodene har komma i dem hver 3 tegn, men disse kan enkelt fjernes. Den håndterer CSVs veldig bra, spesielt når du arbeider med Mac / Windows CSVs.

Kanskje redde noen gang.

Svarte 21/05/2015 kl. 09:45
kilden bruker

stemmer
0

Enkleste løsningen jeg bare funnet ut av dette i dag.

  • Åpne i Word
  • Erstatt alle bindestreker med en bindestrek
  • Lagre og lukk
  • Åpne i Excel

Når du er ferdig med å redigere, kan du alltid åpne den opp igjen i Word igjen for å erstatte egne streker med bindestreker igjen.

Svarte 12/08/2015 kl. 14:10
kilden bruker

stemmer
3

(Excel 2007 og senere)

Hvordan tvinge excel ikke å "oppdage" datoformater uten å redigere kildefilen

Enten:

  • endre navn på filen som .txt
  • Hvis du ikke kan gjøre det, i stedet for å åpne CSV-filen direkte i Excel, opprette en ny arbeidsbok og deretter gå til
    Data > Get external data > From Text
    og velg CSV.

Uansett vil du bli presentert med importalternativer, velger hver kolonne inneholder datoer og fortelle utmerke å formatere som "tekst" ikke "general".

Svarte 17/09/2015 kl. 08:39
kilden bruker

stemmer
1

Lim tabell i ord. Gjør et søk / erstatt og endre alle - (stiplet) i - (dobbel bindestrek). Kopiere og lime inn i Excel. Kan gjøre samme for andre symboler (/), etc. Hvis behovet for å endre tilbake til en dash gang i Excel, bare formatere kolonnen til tekst, og deretter gjøre endringen. Håper dette hjelper.

Svarte 24/10/2015 kl. 18:46
kilden bruker

stemmer
13

Fortsatt et problem i Microsoft Office 2016 utgivelsen, ganske urovekkende for de av oss som arbeider med gene navn som MARC1, March1, SEPT1 etc. løsningen jeg har funnet å være den mest praktiske etter å generere en ".csv" fil i R, som vil da bli åpnet / deles med Excel-brukere:

  1. Åpne CSV-filen som tekst (notisblokk)
  2. Kopier den (ctrl + a, ctrl + c).
  3. Lime den inn i en ny excel ark -det vil alle lime inn i en kolonne som lange tekststrenger.
  4. Velg / velg denne kolonnen.
  5. Gå til Data- "Tekst til kolonner ...", på vinduet åpnes velge "avgrenset" (neste). Sjekk at "komma" er merket (merking vil det allerede viser separasjon av data til kolonner under) (neste), i dette vinduet kan du velge kolonnen du vil og merke det som tekst (i stedet for generell) (Finish).

HTH

Svarte 30/11/2015 kl. 15:35
kilden bruker

stemmer
2

Hva jeg har gjort for samme problem var å legge til følgende før hver csv verdi: "=" "" og en dobbel sitat etter hvert CSV verdi, før du åpner filen i Excel. Ta følgende verdier for eksempel:

012345,00198475

Disse bør endres før åpningen i Excel til:

"="""012345","="""00198475"

Når du gjør dette, vises hver celle verdi som en formel i Excel og så vil ikke bli formatert som et nummer, dato, etc. For eksempel vises en verdi av 012 345 som:

="012345"
Svarte 07/12/2015 kl. 23:12
kilden bruker

stemmer
1

I mitt tilfelle ble "Sept8" i en csv fil genereres ved hjelp av R omdannes til "8-Sept" av Excel 2013. Problemet ble løst ved anvendelse av write.xlsx2 () -funksjonen i xlsx pakken for å generere utgangsfilen i xlsx format , som kan legges inn ved Excel uten uønsket omdannelse. Så, hvis du får en csv-fil, kan du prøve å legge det inn i R og konvertere den til xlsx bruker write.xlsx2 () -funksjonen.

Svarte 29/02/2016 kl. 00:43
kilden bruker

stemmer
1

Jeg gjør dette for kredittkortnumre som holder konvertere til vitenskapelig notasjon: Jeg ender opp med å importere min .csv til Google Regneark. Import alternativer nå tillate å deaktivere automatisk formatering av tallverdier. Jeg satt eventuelle sensitive kolonner til ren tekst og nedlasting som xlsx.

Det er en forferdelig arbeidsflyt, men minst mine verdier blir liggende slik de skal være.

Svarte 16/08/2016 kl. 19:09
kilden bruker

stemmer
0

Jeg laget denne VBA-makro som i utgangspunktet formaterer en effekt som tekst før du limer tallene. Fungerer perfekt for meg når jeg ønsker å lime inn verdier som 8/11, 23/6, 1/3 etc. uten Excel tolker dem som datoer.

Sub PasteAsText()
' Created by Lars-Erik Sørbotten, 2017-09-17
Call CreateSheetBackup

Columns(ActiveCell.Column).NumberFormat = "@"

Dim DataObj As MSForms.DataObject
Set DataObj = New MSForms.DataObject
DataObj.GetFromClipboard

ActiveCell.PasteSpecial

End Sub

Jeg er veldig interessert i å vite om dette fungerer for andre mennesker også. Jeg har vært på jakt etter en løsning på dette problemet for en stund, men jeg har ikke sett en rask VBA løsning på det før som ikke inkluderte å sette inn "foran inngangs teksten. Denne koden beholder dataene i sin opprinnelige form.

Svarte 17/09/2017 kl. 15:04
kilden bruker

stemmer
2

Ingen av de løsningene som tilbys her er en god løsning. Det kan fungere for enkeltsaker, men bare hvis du er i kontroll over det endelige displayet. Ta mitt eksempel: mitt arbeid produserer liste over produkter de selger til detaljhandel. Dette er i CSV-format og inneholder en del-koder, noen av dem starter med null-tallet, satt av produsentene (som ikke er under vår kontroll). Ta bort de ledende nuller, og du kan faktisk matche et annet produkt. Personkunder vil at listen i CSV-format på grunn av back-end behandling programmer, som også er utenfor vår kontroll og annerledes per kunde, så vi kan ikke endre formatet på CSV-filer. Ingen prefiks '=', og heller ikke lagt faner. Dataene i rå CSV-filer er riktig; det er når kundene åpne disse filene i Excel problemene starter. Og mange kunder er egentlig ikke datamaskinen kunnskapsrike. De kan bare om åpne og lagre e-postvedlegg. Vi tenker på å gi dataene i to litt forskjellige formater:. En som Excel Friendly (ved hjelp av alternativene foreslått ovenfor ved å legge til en kategori, den andre som 'master' Men dette kan være ønsketenkning som noen kunder ikke vil forstå hvorfor vi trenger å gjøre dette. i mellomtiden fortsetter vi å holde forklarer hvorfor de noen ganger se 'feil' data i sine regneark. Inntil Microsoft gjør en skikkelig forandring jeg ser ingen skikkelig løsning på dette, så lenge man ikke har kontroll over hvordan sluttbrukere bruke filene.

Svarte 30/11/2017 kl. 08:59
kilden bruker

stemmer
1

En midlertidig løsning ved hjelp av Google Disk (eller tall hvis du er på en Mac):

  1. Åpne data i Excel
  2. Sett formatet på kolonnen med feil data til tekst (Format> Celler> Nummer> Tekst)
  3. Laste CSV til Google Drive, og åpne den med Google Regneark
  4. Kopier uakseptable kolonne
  5. Lim kolonne i Excel som Text (Rediger> Lim inn utvalg> Tekst)

Alternativt hvis du er på en Mac for trinn 3 kan du åpne data i Numbers.

Svarte 19/12/2017 kl. 20:00
kilden bruker

stemmer
0

Slutt å bruke Excel til å opprette / åpne / redigere CSV-filer!

Foreslåtte løsninger er motbydelig: "=" "2008-10-03" "" ??? WTF er dette? Jeg vil ikke gjøre mambo-jumbo med mine data bare for å gjøre redaktør glad!

Kanskje import fra txt, satt kolonnen til tekst og alt oppfører seg som forventet. Men så gjør du jobben din, lagre endringene, åpne det igjen og samme dritten skjer. Du må forklare klienten ikke å åpne denne filen ved å dobbeltklikke og at han skulle gjøre "importere" data hver gang ????

Løsning ved hjelp av Google Disk ????? Whaaaat?

Jeg nekter å engang tenke på å bruke Excel til å redigere CSV før noen fornuftig løsning som kan brukes sammen med siste versjoner av Excel, og som ikke krever noen ASCII art stil data forurensning. Og det betyr heller ikke bruke CSV forlengelse, som folk flest har er forbundet med Excel.

Svarte 08/05/2018 kl. 06:34
kilden bruker

stemmer
1

(Excel 2016 og senere, faktisk jeg ikke har prøvd i eldre versjoner)

  1. Åpne ny blank side
  2. Gå til fanen "Data"
  3. Klikk "Fra tekst / CSV" og velg CSV-filen
  4. Sjekk inn forhåndsvisning om dataene er riktige.
  5. I сase når noen kolonne konverteres til dato klikk "edit" og velg deretter typen Tekst ved å klikke på kalenderen i hodet av kolonnen
  6. Klikk på "Close & Load"
Svarte 27/06/2018 kl. 08:45
kilden bruker

stemmer
1

2018

Den eneste riktige løsning som fungerte for meg (og også uten å endre CSV).

Excel 2010:

  1. Opprett ny arbeidsbok
  2. Data> Fra tekst> Velg CSV-fil
  3. I popup, velg "Avgrenset" -knappen, og klikk "Neste>"
  4. Skilletegn boksene: Kryss av "Comma" og fjern haken de andre alternativene, og klikk deretter på "Next>"
  5. I "Data preview", blar du til høyre, så hold shift og klikk på den siste kolonnen (dette vil velge alle kolonner). Nå i "Kolonne data format" velg alternativknappen "Text", deretter "Finish".

Excel Office365: (klientversjon)

  1. Opprett ny arbeidsbok
  2. Data> Fra Tekst / CSV> Velg CSV-fil
  3. Datatype deteksjon> ikke oppdager

Merk: Excel Office365 (web-versjonen), som jeg skriver dette, vil du ikke være i stand til å gjøre det.

Svarte 12/08/2018 kl. 06:59
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more