Daftar Rumus Agregat

Daftar Ekspresi
Ekspresi daftar menggunakan operator yang mengembalikan daftar atau nilai numerik.

Daftar Operator
  • LIST( nilai apa pun [ , nilai lain ] ... )
  • { setiap-konstan [ , lain-konstan ] ... }
  • nama tabel [ nama kolom ]
  • daftar-mana + daftar-lain
  • daftar-mana - daftar - lain
  • AVERAG ( daftar apa pun )
  • AVERAGE ( daftar-numerik )
  • COUNT ( daftar apa pun )
  • FILTER ( nama tabel , termasuk-baris? )
  • IN ( nilai pertandingan , dalam daftar )
  • INDEX ( daftar , nomor apa saja )
  • LOOKUP ( nilai-pertandingan , dalam-tabel , di-kolom , kolom-kembali )
  • MAX ( daftar-numerik )
  • MAXROW ( in-table , by-column , include-row? )
  • MIN ( daftar numerik )
  • MINROW ( in-table , by-column , include-row? )
  • ORDERBY ( daftar-ulang , nama-kolom [ , turun? [ , Nama-kolom-lain ]] ... )
  • SELECT ( table-column , include-row? [ , Hanya-berbeda? ] )
  • SORT ( daftar apa saja [ , turun? ] )
  • STDEVP ( daftar ini )
  • SUM ( daftar numerik )
  • TOP ( semua-daftar , nomor )
Membangun dan Menggunakan Daftar
Selain jenis kolom dasar, AppSheet mendukung daftar yang diketik, seperti daftar Teks , daftar Nomor , daftar Harga , daftar Enum , dll. Daftar dapat berisi nol atau lebih banyak nilai.

Ada fungsi untuk membuat daftar dan fungsi yang menggunakan daftar.

Membangun Daftar
  • Cara paling sederhana untuk membuat daftar nilai konstan adalah dengan melampirkannya dalam tanda kurung kurawal dan mencantumkan nilai konstan dipisahkan dengan koma. {1, 2, 3} : menyusun daftar nilai Angka konstan . {"Apple", "Banana", "Cherry"} : membuat daftar nilai Teks konstan .
  • Fungsi LIST () membuat daftar dari konstanta, nilai kolom, dan ekspresi. DAFTAR (1, 2, 3) : menyusun daftar nilai Angka konstan dan setara dengan {1, 2, 3} . DAFTAR ("Apple", "Banana", "Cherry") : membuat daftar nilai Teks konstan dan setara dengan {"Apple", "Banana", "Cherry"} . LIST ([HomePhone], [CellPhone], [WorkPhone]) : membuat daftar dari nilai kolom yang ditentukan dari baris.
  • Anda dapat menyusun daftar dari nilai dalam kolom. Daftar ini hanya berisi nilai yang berbeda. Jika nilai yang sama muncul di beberapa baris, nilai itu hanya muncul sekali dalam daftar. Pelanggan [Nomor Telepon] : membuat daftar nomor telepon berbeda yang terdapat di kolom Nomor Telepon pada tabel Pelanggan.
  • SELECT () adalah cara ampuh untuk membuat daftar dari tabel lain. Ini adalah SQL "select-from-where" query yang bergaya. Ini membangun daftar nilai dari kolom tertentu dari suatu tabel. Namun, filter dapat diterapkan untuk mengontrol baris mana yang disertakan. Daftar hasil hanya mencakup nilai kolom yang ditentukan dari baris yang disertakan. SELECT (Pelanggan [Nomor Telepon], [Negara] = "WA") : mengembalikan daftar nomor telepon pelanggan WA. Nomor telepon duplikat mungkin ada dalam daftar yang dikembalikan. SELECT (Pelanggan [Negara], [Negara] = "AS", BENAR) : mengembalikan daftar negara pelanggan Amerika Serikat yang berbeda (duplikat bebas).
  • FILTER () adalah kasus khusus SELECT () yang digunakan untuk membuat daftar referensi baris dengan menerapkan kondisi filter ke tabel.
  • FILTER (Pelanggan, [Negara] = "WA") : mengembalikan daftar pelanggan di negara WA
  • FILTER (Pelanggan, [Negara] = "AS") : mengembalikan daftar pelanggan di AS

Penambahan Daftar
DAFTAR + mengembalikan kombinasi daftar pertama dan kedua.
  • Pelanggan [PhoneNumber] + {"1800-444-4444", "1800-555-5555"} : mengembalikan daftar gabungan nomor telepon.

Daftar Pengurangan
DAFTAR - mengembalikan item dalam daftar pertama setelah menghapus item dalam daftar kedua.
  • Pelanggan [PhoneNumber] - {"1800-444-4444", "1800-555-5555"} : mengembalikan daftar nomor telepon pelanggan dengan daftar nomor kedua dikecualikan.

ANY (daftar apa pun)
APAPUN () mengambil nilai sewenang-wenang tunggal dari daftar nilai.
  • ANY({1, 2, 3}) : mengembalikan 1, 2, atau 3.
  • ANY (Item [Quantity]) : mengembalikan salah satu dari nilai-nilai dalam kolom Kuantitas dari tabel Item .
  • SETIAP (PILIH (Pelanggan [Telepon], CONTAINS ([Nama], "John Doe")) : mengembalikan salah satu nilai di kolom Telepon Pelanggan yang memiliki Nama "John Doe".

RATA-RATA (daftar-numerik)
AVERAGE () mengembalikan nilai rata-rata dari item dalam daftar.
  • RATA-RATA ({1, 2, 3}) : mengembalikan 2.
  • RATA-RATA ({1, 2, 3, 4}) : menghasilkan 2,5
  • AVERAGE (Item [Quantity]) : mengembalikan nilai rata-rata dalam kolom Kuantitas pada tabel Item .

COUNT (daftar apa pun)
COUNT () mengembalikan jumlah item dalam daftar.

  • COUNT ({1, 2, 3}) : mengembalikan 3.
  • COUNT (LIST ("Apple", "Banana", "Cherry")) : mengembalikan 3.
  • COUNT ({"Apple", "Banana", "Cherry"}) : singkatan untuk ekspresi sebelumnya dan juga mengembalikan 3.
  • COUNT (Pelanggan [Nomor Telepon]) : mengembalikan jumlah nomor telepon unik yang terdapat di kolom Nomor Telepon pada tabel Pelanggan .
  • COUNT (SELECT (Pelanggan [Nomor Telepon], [Negara] = "WA"), TRUE) : mengembalikan jumlah nomor telepon unik pelanggan WA.

IN (nilai pertandingan, dalam daftar)
IN () memeriksa keberadaan nilai dalam daftar.
  • IN ([ColumnName], {1, 2, 3}) : mengembalikan TRUE jika ColumnName berisi 1, 2, atau 3. Nilai daftar harus berupa konstanta dalam bentuk daftar ini.
  • IN ([ColumnName], LIST ((1 * 1), (2 * 2), (3 * 3))) : mengembalikan TRUE jika ColumnName berisi 1, 4, atau 9. Contoh ini menggambarkan bahwa nilai daftar dapat berupa konstanta atau ekspresi ketika fungsi LIST () digunakan.
  • IN ("Banana", [FruitEnumList]) : mengembalikan TRUE jika kolom FruitEnumList berisi nilai, "Banana".
  • ATAU (IN ("Apple", [FruitEnumList]), IN ("Banana", [FruitEnumList])) : mengembalikan TRUE jika kolom FruitEnumList berisi nilai "Apple", nilai "Banana", atau keduanya.
  • DAN (IN ("Apple", [FruitEnumList]), IN ("Banana", [FruitEnumList])) : mengembalikan TRUE jika kolom FruitEnumList berisi nilai "Apple" dan nilai "Banana".
  • DAN (IN ("Apple", [FruitEnumList]), NOT (IN ("Banana", [FruitEnumList]))) : mengembalikan TRUE jika kolom FruitEnumList berisi nilai "Apple" tetapi bukan nilai "Banana".

INDEX (daftar, nomor apa saja)
INDEX () mengambil satu nilai spesifik dari daftar nilai.

  • INDEX ({41, 27, 388}, 2) : mengembalikan 27.
  • INDEX (Item [Quantity], 2) : mengembalikan nilai kedua dalam kolom Kuantitas pada tabel Item .
  • INDEX (SELECT (Pelanggan [Telepon], CONTAINS ([Nama], "John Doe"), 1) : mengembalikan nilai pertama di kolom Telepon Pelanggan yang memiliki Nama "John Doe".

LOOKUP (nilai-pertandingan, nama-tabel, nama kolom, kolom-kembali)
LOOKUP () mirip dengan fungsi spreadsheet VLOOKUP () .

  • LOOKUP ("John Doe", Pelanggan, Nama, Telepon) : mencari kolom Nama dari tabel Pelanggan untuk nilai "John Doe" dan mengembalikan nilai di kolom Telepon dari tabel itu. Ini adalah padanan yang kompak dari APA PUN (SELECT (Pelanggan [Telepon], [Nama] = "John Doe")) di mana filter adalah kondisi kesetaraan.

MAX (daftar-numerik)
MAX () mengembalikan item maksimum dalam daftar.

  • MAX ({1, 2, 3}) : mengembalikan 3.
  • MAX ({3.1, 4.2, 9.3, 15.4, 32.5}) : mengembalikan 32.5.
  • MAX (Item [Harga]) : mengembalikan nilai maksimum di kolom Harga pada tabel Item .

MAXROW (dari tabel, dengan kolom [, termasuk-baris?])
MAXROW () mengembalikan referensi ke baris yang memiliki nilai terbesar dalam sebuah kolom.

  • MAXROW (Pelanggan, SignupDate) : menghasilkan pelanggan yang baru saja dibuat.
  • MAXROW (Pelanggan, SignupDate, [Negara] = WA) : mengembalikan pelanggan yang paling baru dibuat dari negara WA.

Jika Anda melihat kesalahan "Ekspresi '<ekspresi Anda>' tidak dapat diuraikan ...", taruh tanda kutip ganda di sekitar nama bidang. Misalnya, MAXROW (Rapat, "Tanggal") . Dalam hal ini, Tanggal adalah kata kunci untuk rumus spreadsheet, yang membingungkan parser rumus. Menempatkan nama field Tanggal dalam tanda kutip ganda menghindari masalah ini.

MIN (daftar numerik)
MIN () mengembalikan item minimum dalam daftar.

  • MIN ({1, 2, 3}) : mengembalikan 1.
  • MIN ({3, 4, 9, 15, 32}) : mengembalikan 3.
  • MIN (Item [Harga]) : mengembalikan nilai minimum di kolom Harga pada tabel Item .

MINROW (dari tabel, dengan kolom [, termasuk-baris?])
MINROW () mengembalikan referensi ke baris yang memiliki nilai terkecil dalam kolom.

  • MINROW (Pelanggan, MendaftarNilai) : menghasilkan pelanggan yang paling baru-baru ini dibuat.
  • MINROW (Pelanggan, SignupDate, [Negara] = WA) : mengembalikan pelanggan yang paling baru-baru ini dibuat dari negara WA.

Jika Anda melihat kesalahan "Ekspresi '<ekspresi Anda>' tidak dapat diuraikan ...", taruh tanda kutip ganda di sekitar nama bidang. Misalnya, MINROW (Rapat, "Tanggal") . Dalam hal ini, Tanggal adalah kata kunci untuk rumus spreadsheet, yang membingungkan parser rumus. Menempatkan nama field Tanggal dalam tanda kutip ganda menghindari masalah ini.

SORT (daftar apa saja [, turun?])
SORT () mengembalikan item dalam daftar yang diurutkan secara default dalam urutan menaik. Kontrol input kedua benar / salah opsional jika jenisnya harus dalam urutan menurun. Fungsi ini biasanya digunakan dalam Valid_If constraint of a column untuk mengontrol urutan menu dropdown.

  • SORT ({22, 44, 33}) : mengembalikan daftar {22, 33, 44}
  • SORT ({22, 44, 33}, TRUE) : mengembalikan daftar {44, 33, 22}

SPLIT (teks, pemisah)
SPLIT () mengembalikan daftar fragmen teks di antara pemisah . Misalnya, SPLIT ("Merah: Kuning: Hijau", ":") mengembalikan daftar yang berisi nilai Merah , Kuning , dan Hijau .

SUM (daftar numerik)
SUM () mengembalikan jumlah item dalam daftar.

  • SUM ({1, 2, 3}) : mengembalikan 6.
  • SUM ({3, 4, 9, 15, 32}) : mengembalikan 63.
  • SUM (Item [Quantity]) : mengembalikan jumlah nilai dalam kolom Kuantitas pada tabel Item .
  • SUM ([Detail Pesanan] [Total]) : mengembalikan jumlah nilai dalam kolom Total catatan tabel Detail Detail anak . Misalnya, ekspresi ini mungkin muncul di properti rumus Aplikasi kolom virtual dalam tabel Pesanan . Ini menghitung jumlah semua detail Rincian Pesanan anak yang direferensikan oleh kolom referensi Rinci Detail Pesanan dari catatan Pesanan .

TOP (semua-daftar, nomor)
TOP () mengembalikan daftar nomor awal untuk daftar apa pun .

  • TOP ({1, 2, 3, 4, 5}, 3) mengembalikan daftar yang berisi nilai 1, 2, dan 3.
  • TOP (LIST ("John", "Mary"), 4) mengembalikan daftar yang berisi nilai-nilai John dan Mary . Jika lebih banyak item diminta daripada daftar yang ada, hanya sebanyak item yang ada dalam daftar yang berisi dikembalikan.
  • TOP (SORT (Pelanggan [Usia]), 0) mengembalikan daftar dengan 0 item.
  • TOP (ORDERBY (FILTER (Purchases, ([Nama Pelanggan] = "Alice")), Tanggal Pembelian, TRUE), 3) mengembalikan 3 catatan pembelian terbaru untuk pelanggan bernama Alice. FILTER (Pembelian, ([Nama Pelanggan] = "Alice")) mengembalikan kunci ke semua baris dalam Pembelian di mana nilai kolom Nama Pelanggan adalah Alice . ORDERBY (FILTER (...), Purchase Date, TRUE) mengurutkan kunci yang dikembalikan oleh FILTER () sesuai dengan nilai kolom Tanggal Pembelian , dalam urutan menurun (seperti yang diarahkan oleh TRUE ). TOP (ORDERBY (...), 3) mengembalikan 3 tombol baris pertama yang dikembalikan oleh ORDERBY (), yang merupakan 3 baris dengan tanggal pembelian terbaru.

Menggunakan Daftar di Kendala Kolom
Daftar sering digunakan dengan kendala kolom seperti Editable_If , Show_If , atau Valid_If . Lihat Kendala Kolom .

Dalam batasan kolom:

[_THIS] mengacu pada nilai kolom saat ini.

[_THISROW] mengacu pada nilai baris saat ini.

  • IN ([_ THIS], {1, 2, 3}) : mengembalikan TRUE jika nilai dalam nilai kolom terdapat dalam daftar.
  • {1, 2, 3} : adalah bentuk singkat dari ekspresi sebelumnya. Ini setara dengan IN ([_ THIS], {1, 2, 3}) .
  • IN (USEREMAIL (), TableName [Emails)) : mengembalikan TRUE jika alamat email pengguna terdapat dalam kolom Email tabel, TableName .
  • COUNT (SELECT (Pelanggan [Nomor Telepon], [Negara] = [_THIS]))> 100 : mengembalikan TRUE jika ada lebih dari 100 nomor telepon pelanggan dalam keadaan saat ini.
  • COUNT (FILTER (Pelanggan, [Negara] = [_THISROW]. [Negara]))> 1000 : mengembalikan TRUE jika ada lebih dari 1000 pelanggan dalam kondisi saat ini.

Mencegah Nilai Kolom Duplikat
Anda dapat memastikan bahwa setiap catatan dalam tabel memiliki nilai bidang unik dengan menentukan ekspresi Valid_If untuk bidang itu.

NOT (IN ([_ THIS], SELECT (Pelanggan [Negara], NOT (IN ([CustomerId], LIST ([_ THISROW]. [CustomerId])))))) : ketika digunakan sebagai kondisi Valid_If untuk kolom Negara , ini memastikan bahwa setiap pelanggan memiliki nilai unik untuk Negara . Dalam contoh ini, kami menganggap bahwa CustomerId adalah kunci untuk tabel Pelanggan .
Ekspresi ini menggunakan [_THISROW]. [CustomerId] untuk mendapatkan nilai kunci dari baris saat ini. Ini memungkinkan Anda mengecualikan baris saat ini dari daftar baris yang memiliki nilai kolom duplikat. Ini memungkinkan Anda untuk memperbarui baris saat ini tanpa melaporkannya sebagai nilai kolom duplikat.

Menyortir Daftar Kunci dengan ORDERBY ()
Anda dapat mengurutkan daftar kunci menggunakan fungsi ORDERBY () . Ini dapat digunakan untuk mengurutkan nilai dalam menu dropdown Ref (dengan memodifikasi rumus aplikasi kolom virtual Referensi Terkait ) atau untuk mengontrol urutan baris yang ditampilkan dalam aturan alur kerja, Mulai ekspresi.

ORDERBY ( ref-list , nama kolom [ , descending? [ , Nama-kolom-lain ]] ... ) untuk mengurutkan daftar kunci. Argumen pertama harus menghasilkan daftar referensi, yaitu daftar kunci dari baris untuk mengurutkan. Ini diikuti oleh satu atau lebih pasangan yang menunjukkan nama kolom untuk diurutkan berdasarkan dan arah pemesanannya. Nilai TRUE menunjukkan urutan menurun (misalnya, 9 hingga 0, atau Z ke A); FALSE menunjukkan urutan menaik (misalnya, 0 hingga 9, atau A sampai Z). Jika data harus dipesan hanya dengan satu kolom (yang merupakan kasus umum), arah pemesanan dapat diabaikan dan default ke FALSE (sehingga baris diurutkan dalam urutan menaik). Sebagai contoh,ORDERBY ([Pesanan Terkait], [Nama Pelanggan], [Tanggal Pesanan], FALSE) .

Daftar Pola dan Contoh Ekspresi
Dari Pembuat Ekspresi , ikuti pola di bawah ini untuk daftar atau hasil numerik. Lihat contoh untuk kejelasan lebih lanjut.

Contoh Hasil Pola

table_name [{column_name}] Daftar Jenis Bidang [Alamat]

DAFTAR ({*}, {*}) Daftar DAFTAR ([ChangeTimestamp], "value_1")

SELECT ({List}, {Yes / No}) Daftar SELECT ({"value_1", "value_2"}, [Harga] = 19,99)

COUNT ({List}) Jumlah COUNT ({"value_1", "value_2"})

SUM ({List}) Jumlah SUM ({"value_1", "value_2"})

APAPUN ({List}) Nomor SETIAP ({"value_1", "value_2"})

Ekspresi dalam artikel ini sejajar dengan Ekspresi Daftar dalam Penyusun Ekspresi di editor aplikasi. Ekspresi dapat digunakan dalam berbagai fitur AppSheet - nilai awal, rumus aplikasi, kolom virtual, dan kendala kolom ( Valid_If , Show_If , Required_If ) - untuk menyesuaikan perilaku aplikasi dan menyediakan fungsionalitas lanjutan kepada pengguna Anda.

Mengontrol Lebar Kolom

ppSheet tidak membiarkan pembuat aplikasi mengatur ukuran kolom secara manual karena berbagai ukuran layar ponsel dan tablet. Sebagai gantin...