Hmm, “faktiskt kan excel” låter ju lite aggressivt samtidigt som man inte alls behöver kunna excel för att svara på din fråga.
man låser kolumn eller rad eller båda med $ framför värdet du vill låsa.
Tex B4. Vill du låsa kolumn skriver du $B4 och vill du låsa rad skriver du B$4 vill du låsa båda $B$4. Man kan även markera referensen i formeln och trycka på F4 för att cykla genom olika låsningar.
Ja… Det är en ganska stor fil, men väldigt liten i excelmått mätta. Jag vet folk som använder det som om det är en databas, och då fungerar beräkningarna som de skall - men det laggar kopiöst… Så det skall inte vara några konstigheter, jag har bara 4 flikar och är inne på Z50 i fjärde fliken. Borde ju inte vara något knepigt.
Får se om jag har samma aber nästa månad. Då borde första ARBETSDAGAR(SLUTMÅNAD( iallafall ge rätt resultat, så får vi se om de andra går lika bra. Min graf gör vad den skall nu åtminstone
Funktionen XLOOKUP kan leta efter datum och returnera värde i samma rad, men du måste “hårdkoda” in det manuellt varje dag ändå, för att den kommer alltid ändra till dagens datum och kurs varje dag du öppnar bladet.
Laborera med datumet så kanske det går att förstå vad jag menar: Patzinga Copy of Kopia Ombalanseringsblad - Google Tabellen
Har ett Google kalkylark som jag formaterat för utskrift på ett speciellt sätt.
Nu vill jag kopiera alla format (även utskriftsformat) till nytt blad,
men får inte med utskriftsformateringen …
Tacksam för hjälp!
Du måste hitta ett web API som har datum som argument.
Nu har du ett som ger nuvarande/senaste kurs.
Det är inget som google sheets kan fixa.
(Jag gjorde en snabb koll och jag hittade ingen, men det måste ju finnas??)
Finns det något web API som har datum som argument?
Ja, det finns flera webb-API:er som tar datum som argument. Här är några exempel:
Java REST API: I Java kan du skapa ett REST API där du skickar datum som en URL-parameter¹. Datumformatet kan vara “dd/MM/yyyy HH:mm”. Du kan använda följande URL för att anropa API:et: http://localhost:8089/stay/datecheck?dateCheckIn={dateCheckIn}. Här är dateCheckIn datumet du vill skicka.
ASP.NET Web API: I ASP.NET kan du också skicka datum som en parameter till ditt Web API². Du kan till exempel skicka ett UTC-datum som “2014-12-31T22:00:00.000Z” till ditt API.
API Date: API Date är ett REST API som ger aktuellt datum och tid³. Du kan få svar i tre olika format: JSON, XML eller som vanlig text. Dessutom kan du anpassa mönstret för ditt datum och tid i API-svaret.
Kom ihåg att när du skickar datum som en parameter i URL:en, måste du se till att datumformatet är korrekt och att det är URL-kodat korrekt. Till exempel, i stället för att använda ett mellanslag, använd %20. I stället för ett snedstreck, använd %2F. Och i stället för ett kolon, använd %3A¹.
Observera att dessa är bara exempel och det finns många andra API:er som kan ta datum som argument. Du kan behöva anpassa dessa exempel baserat på dina specifika behov och den teknik du använder.
Det går säkert att automatisera detta helt. Riktigt så enkelt får du dock inte .
För att du ska se det inte är något farligt du kör kan du se skriptet i sin helhet nedanför med ursprungliga kommentarer. Det är genererat av ChatGPT.
Steg ett är att klistra in skriptet nedanför via “Tillägg” > “Apps Script” och spara. Skriptet kopierar information från cell F21 och G19 i “Ombalanseringsblad” och sen klistrar in det på första lediga raden i respektive plats i bladet “Diagram”. Det är namnet jag döpt ditt andra blad i arket. Du får också döpa om det eller ändra i skriptet.
function copyDataToDiagramSheet() {
// Source sheet and range
var sourceSheetName = 'Ombalanseringsblad';
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sourceSheetName);
var sourceValue1 = sourceSheet.getRange('F21').getValue();
var sourceValue2 = sourceSheet.getRange('G19').getValue();
// Destination sheet and range
var destinationSheetName = 'Diagram';
var destinationSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(destinationSheetName);
// Find the first empty row in the B column of the destination sheet
var firstEmptyRowB = 1;
while (destinationSheet.getRange('B' + firstEmptyRowB).getValue() !== '' && firstEmptyRowB <= destinationSheet.getLastRow()) {
firstEmptyRowB++;
}
// Find the first empty cell in the A column of the destination sheet
var firstEmptyCellA = 1;
while (destinationSheet.getRange('A' + firstEmptyCellA).getValue() !== '' && firstEmptyCellA <= destinationSheet.getLastRow()) {
firstEmptyCellA++;
}
// Paste values from source to destination
destinationSheet.getRange('B' + firstEmptyRowB).setValue(sourceValue1);
destinationSheet.getRange('A' + firstEmptyCellA).setValue(sourceValue2);
}
Steg 2 blir att skapa ett till skript som ger en meny (eller om man vill, en knapp) som kör skriptet. I vårt fall blir det en meny:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom Menu')
.addItem('Copy Data to Diagram Sheet', 'copyDataToDiagramSheet')
.addToUi();
}
Resultatet när det andra skriptet körs är att du har en Custom Menu som du kan köra skriptet ifrån. Det går säkert att skriva om det här så det körs en gång per dag och automatiskt.
Tillägger att jag är nybörjare på detta så det är mycket trial and error
Den här kollar om skriptet körts idag varje gång arket öppnas. Har det inte gjort det så körs det. Det vill säga kopierar dina celler och lägger till dem på “Diagram”.
Det fungerade för mig men reserverar mig för ev. fel.
// Function to copy data to Diagram sheet
function copyDataToDiagramSheet() {
// Your existing copyDataToDiagramSheet code
var sourceSheetName = 'Ombalanseringsblad';
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sourceSheetName);
var sourceValue1 = sourceSheet.getRange('F21').getValue();
var sourceValue2 = sourceSheet.getRange('G19').getValue();
var destinationSheetName = 'Diagram';
var destinationSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(destinationSheetName);
var firstEmptyRowB = 1;
while (destinationSheet.getRange('B' + firstEmptyRowB).getValue() !== '' && firstEmptyRowB <= destinationSheet.getLastRow()) {
firstEmptyRowB++;
}
var firstEmptyCellA = 1;
while (destinationSheet.getRange('A' + firstEmptyCellA).getValue() !== '' && firstEmptyCellA <= destinationSheet.getLastRow()) {
firstEmptyCellA++;
}
destinationSheet.getRange('B' + firstEmptyRowB).setValue(sourceValue1);
destinationSheet.getRange('A' + firstEmptyCellA).setValue(sourceValue2);
// Store the last run date
var scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty('LAST_RUN_DATE', new Date().toDateString());
}
// Function to run the copyDataToDiagramSheet function on sheet open
function onOpen() {
// Check if the script has already been run today
var scriptProperties = PropertiesService.getScriptProperties();
var lastRunDate = scriptProperties.getProperty('LAST_RUN_DATE');
var today = new Date().toDateString();
if (lastRunDate !== today) {
// Run the script if it hasn't been run today
copyDataToDiagramSheet();
}
}
Här kommer en fråga från en okunnig. Jag köpte en ny laptop. Jag saknar officepaketet. Behöver bara göra enklare saker privat. Hur göra?
Jag provade med Libreoffice och Openoffice, det där fick jag inte att fungera.
Går det att använda den gamla koden som följde med en CD-skiva med officepaketet för tio år sedan då jag installerade Office på min gamla stationära dator som nu skall skrotas.
Google sheets-fråga.
Utmaning: fil med 50+ ark som jag vill konsolidera till ett och samma ark. Datan i alla ark har samma format, men olika antal rader.
Lösning hittills: funktionen query och sen markera området i varje ark 50+ gånger.