Kopya kağıdı

Biscuit'in en sık getirdiği formüller

Çalışan bir referans. Kopyala, yapıştır, işine dön. Reklam yok, pop-up yok, e-postanı dilenen sohbet botu yok.

Biscuit'ten ipucu: burada en yakın dostun ctrl+F. Her şeyi on beş saniyeden kısa sürede bulabileceğin şekilde dizdim.
Bölüm 1

Toplamlar ve sayma

Bir koşula uyan satırları say

=COUNTIF(A:A, "Denver")

A sütununda tam olarak "Denver" ile eşleşen hücre sayısını döndürür.

Joker karakterle sayma

=COUNTIF(A:A, "*Denver*")

Kısmi eşleşmeler için yıldız kullanır. Excel'de ve Google Sheets'te çalışır.

Birden çok koşulla sayma

=COUNTIFS(A:A, ">10", B:B, "active")

Her koşul-aralık çifti VE ile bağlıdır. VEYA mantığı için iki COUNTIFS'i topla.

Sadece eşleşen satırları topla

=SUMIF(A:A, "Denver", B:B)

A sütunu "Denver"a eşit olduğunda B sütunundaki değerleri toplar.

Birden çok koşulla toplama

=SUMIFS(B:B, A:A, "Denver", C:C, ">=100")

SUMIFS'te önce değer aralığı, sonra koşul çiftleri gelir. Kazara karıştırması kolay.

Birikimli toplam

=SUM($B$2:B2)

Aşağı sürükle. Çapa başlangıcı kilitler, göreli son ilerledikçe büyür.

Bölüm 2

Aramalar

Temel VLOOKUP

=VLOOKUP(A2, Products!A:C, 3, FALSE)

A2'yi Products A sütununda bulur, 3. sütunu döndürür. FALSE tam eşleşme demektir.

INDEX/MATCH (daha iyisi)

=INDEX(Products!C:C, MATCH(A2, Products!A:A, 0))

Biscuit bunu tercih eder. Sütun eklemelerine dayanır ve sola bakabilir.

XLOOKUP (yeni Excel)

=XLOOKUP(A2, Products!A:A, Products!C:C)

Modern yerine geçer. Daha temiz, hataları daha iyi yönetir. Google Sheets'te henüz desteklenmiyor.

Yaklaşık eşleşme (sıralı veri)

=VLOOKUP(A2, Brackets!A:B, 2, TRUE)

TRUE, A2'den küçük ya da eşit en büyük değeri bul demektir. Vergi dilimleri için iyidir.

İki yönlü arama

=INDEX(Data!B:Z, MATCH(A2, Data!A:A, 0), MATCH(B2, Data!1:1, 0))

Satır ve sütun ikisi de dinamik olarak eşleştirilir.

Bölüm 3

Metin ve regex

Boşlukları kırp

=TRIM(A2)

Baştaki, sondaki ve içerideki tekrarlanan boşlukları kaldırır.

Baş harf büyük

=PROPER(A2)

"hello world" "Hello World" olur.

Ayırıcıyla birleştir

=TEXTJOIN(", ", TRUE, A2:A10)

TRUE boş hücreleri yok sayar.

E-postadan alan adını çıkar

=MID(A2, FIND("@", A2)+1, LEN(A2))

FIND @ işaretini bulur, MID ondan sonraki her şeyi alır.

Regex extract (Google Sheets)

=REGEXEXTRACT(A2, "[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]+")

Her türlü karmaşanın içinden ilk e-posta adresini çeker.

Regex replace

=REGEXREPLACE(A2, "\s+", " ")

Tüm boşlukları tek boşluğa indirger.

Bölüm 4

Tarihler

Bugünün tarihi

=TODAY()

Sayfa her yeniden hesaplandığında güncellenir.

İki tarih arasındaki gün

=B2-A2

Tarihler arka planda sayıdır. Çıkarma kendiliğinden çalışır.

Tarihten ay adı

=TEXT(A2, "mmmm")

"Ocak", "Şubat" gibi değerleri döndürür.

İçinde bulunulan ayın ilk günü

=EOMONTH(TODAY(), -1)+1

EOMONTH "ayın sonu" demektir. Bir ay geri git, bir gün ekle.

ISO haftasının başı (Pazartesi)

=A2-WEEKDAY(A2, 3)

Tip 3 ile WEEKDAY Pazartesi için 0 döner, yani çıkarma seni Pazartesi'ye indirir.

Tarihler arasındaki iş günleri

=NETWORKDAYS(A2, B2)

Cumartesi, Pazar ve isteğe bağlı tatilleri dışlar.

Bölüm 5

Diziler (Google Sheets)

Tüm bir sütuna formül uygula

=ARRAYFORMULA(A2:A*2)

Binlerce satırı aşağı sürüklemek tarih oldu.

SQL benzeri söz dizimiyle QUERY

=QUERY(Data!A:D, "SELECT A, SUM(C) WHERE B='active' GROUP BY A", 1)

SQL yazıyormuş gibi davran. Gerçekten çalışıyor.

FILTER

=FILTER(A:B, B:B>100, C:C="active")

Eşleşen satırları döndürür. Çirkin dizi formülü hileleri gerekmez.

UNIQUE

=UNIQUE(A:A)

A sütunundaki tüm farklı değerleri döndürür. Alfabetik değil, bulunuşa göre sıralar.

SORT

=SORT(A2:C, 2, FALSE)

İkinci sütuna göre azalan düzende sıralar.

Bölüm 6

VBA parçacıkları

Aktif olan hariç tüm sayfaları gizle

Sub HideOthers()
  Dim s As Worksheet
  For Each s In ThisWorkbook.Worksheets
    If s.Name <> ActiveSheet.Name Then s.Visible = xlSheetHidden
  Next s
End Sub

Çalışma kitabını üzerinde gerçekten çalıştığın şeye hızlıca indir.

Kullanılan aralıktaki boş satırları sil

Sub KillEmpties()
  Dim r As Long
  For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
  Next r
End Sub

Sildikçe satır numaraları kaymasın diye geriye doğru ilerler.

Bir klasördeki tüm dosyaları aç

Sub LoopFolder()
  Dim f As String
  f = Dir("C:\path\to\folder\*.xlsx")
  Do While f <> ""
    Workbooks.Open "C:\path\to\folder\" & f
    f = Dir()
  Loop
End Sub

Klasik Dir döngüsü. Aylık raporlarla dolu bir klasörün varsa mükemmel.

Aradığını bulamadın mı?

Oyun alanında anlat, Biscuit epey hızlı kavrıyor.

Neye ihtiyacın olduğunu gündelik dille söyle. Formülü ben getiririm.
Oyun alanını dene