Hiểu bảng biểu và bản ghi trong ứng dụng canvas

Trong Power Apps, bạn có thể tạo một ứng dụng canvas truy cập thông tin trong Microsoft Excel, SharePoint, SQL Server và một số nguồn khác lưu trữ dữ liệu trong bản ghi và bảng. Để làm việc hiệu quả nhất với loại dữ liệu này, hãy xem lại các khái niệm làm nền tảng cho các cấu trúc này.

  • Một bản ghi chứa một hoặc nhiều loại thông tin về một người, địa điểm hoặc sự vật. Ví dụ: bản ghi có thể chứa tên, địa chỉ email và số điện thoại của một khách hàng. Các công cụ khác đề cập đến bản ghi là "hàng" hoặc "mục".
  • Bảng chứa một hoặc nhiều bản ghi có chứa cùng loại thông tin. Ví dụ: bảng có thể chứa tên, địa chỉ email và số điện thoại của 50 khách hàng.

Trong ứng dụng của mình, bạn sẽ sử dụng công thức để tạo, cập nhật và thao tác các bản ghi và bảng. Bạn có thể sẽ đọc và ghi dữ liệu vào nguồn dữ liệu bên ngoài, đó là một bảng mở rộng. Ngoài ra, bạn có thể tạo một hoặc nhiều bảng nội bộ, được gọi là tập hợp.

Bạn có thể xây dựng các công thức lấy tên của một bảng làm đối số, giống như một công thức trong Excel lấy một hoặc nhiều tham chiếu ô làm đối số. Một số công thức trong Power Apps trả về một bảng phản ánh các đối số khác mà bạn chỉ định. Ví dụ: bạn có thể tạo công thức:

  • để cập nhật bản ghi trong bảng bằng cách chỉ định bảng đó là một trong nhiều đối số cho hàm Patch
  • để thêm, xóa và đổi tên cột trong bảng bằng cách chỉ định bảng đó làm đối số cho hàm AddColumns, DropColumns hoặc RenameColumns. Không có hàm nào trong số đó sửa đổi bảng gốc. Thay vào đó, hàm trả về một bảng khác dựa trên các đối số khác mà bạn chỉ định.

Thành phần của bảng

Thành phần bảng.

Bản ghi

Mỗi bản ghi chứa ít nhất một hoặc nhiều loại thông tin về một người, địa điểm hoặc sự vật. Ví dụ trên cho thấy bản ghi cho mỗi sản phẩm (Chocolate, BreadWater) và một cột cho mỗi loại thông tin (Price, Quantity on HandQuantity on Order).

Trong một công thức, bạn có thể tự tham chiếu bản ghi, bên ngoài ngữ cảnh của bảng, bằng cách sử dụng dấu ngoặc nhọn. Ví dụ: bản ghi này { Tên: "Strawberries", Giá: 7,99 } không liên kết với bảng. Lưu ý rằng tên trường, chẳng hạn như TênGiá trong ví dụ đó, không được đặt trong dấu ngoặc kép.

Trường

Trường là một phần thông tin riêng trong bản ghi. Bạn có thể hình dung loại trường này như một giá trị trong cột cho một bản ghi cụ thể.

Cũng giống như với điều khiển, bạn tham chiếu trường của bản ghi bằng cách sử dụng . toán tử trên bản ghi. Ví dụ, First(Products).Name trả về trường Tên cho bản ghi đầu tiên trong bảng sản phẩm.

Một trường có thể chứa một bản ghi hoặc bảng khác, như trong ví dụ về hàm GroupBy. Bạn có thể lồng nhiều cấp độ của bản ghi và bảng theo ý muốn.

Số cột

Cột đề cập đến cùng một trường cho một hoặc nhiều bản ghi trong bảng. Trong ví dụ trên, mỗi sản phẩm có một trường giá và giá đó nằm trong cùng một cột cho tất cả các sản phẩm. Bảng trên có bốn cột, được hiển thị theo chiều ngang trên cùng:

  • Tên
  • Giá
  • Số lượng có sẵn
  • Số lượng trên Đơn hàng

Tên của cột phản ánh các trường trong cột đó.

Tất cả các giá trị trong một cột có cùng kiểu dữ liệu. Trong ví dụ trên, cột "Số lượng có sẵn" luôn chứa một số và không thể chứa chuỗi, chẳng hạn như "12 đơn vị" cho một bản ghi. Giá trị của bất kỳ trường nào cũng có thể là trống.

Bạn có thể đã đề cập các cột là "trường" trong những công cụ khác.

Lưu ý

Đối với các nguồn dữ liệu như các ngăn xếp SharePoint, Excel hoặc Power BI có chứa tên cột có dấu cách, Power Apps sẽ thay thế dấu cách bằng "_x0020_". Ví dụ: "Tên cột" trong ngăn xếp SharePoint, Excel hoặc Power BI sẽ xuất hiện dưới dạng "Column_x0020_Name" trong Power Apps khi được hiển thị trong bố cục dữ liệu hoặc được sử dụng trong công thức.

Table

Một bảng bao gồm một hoặc nhiều bản ghi, mỗi bản ghi có nhiều trường có tên nhất quán trong các bản ghi.

Bất kỳ bảng nào được lưu trữ trong nguồn dữ liệu hoặc bộ sưu tập đều có tên, mà bạn sử dụng để tham chiếu bảng và chuyển nó tới các hàm lấy bảng làm đối số. Bảng cũng có thể là kết quả của hàm hoặc công thức.

Như trong ví dụ sau, bạn có thể biểu diễn bảng trong công thức bằng cách sử dụng hàm Table với một tập hợp các bản ghi mà bạn thể hiện trong dấu ngoặc nhọn:

Table( { Value: "Strawberry" }, { Value: "Vanilla" } )

Bạn cũng có thể xác định bảng một cột với dấu ngoặc vuông. Cách tương đương để viết nội dung trên:

[ "Strawberry", "Vanilla" ]

Công thức bảng

Trong Excel và Power Apps, bạn sử dụng các công thức để thao tác số và chuỗi văn bản theo cách tương tự:

  • Trong Excel, nhập một giá trị, chẳng hạn như 42, trong ô A1 và sau đó nhập một công thức, chẳng hạn như A1+2, trong một ô khác để hiển thị giá trị của 44.
  • Trong Power Apps, đặt thuộc tính Default của Slider1 thành 42 rồi đặt thuộc tính Text của nhãn thành Slider1.Value + 2 để hiển thị giá trị 44.

Trong cả hai trường hợp, giá trị được tính sẽ tự động thay đổi nếu bạn thay đổi giá trị của các đối số (ví dụ: số trong ô A1 hoặc giá trị của Slider1).

Tương tự, bạn có thể sử dụng các công thức để truy cập và thao tác dữ liệu trong bảng và bản ghi. Bạn có thể sử dụng tên của các bảng làm đối số trong một số công thức, chẳng hạn như Min(Catalog, Price) để hiển thị giá trị thấp nhất trong cột Giá của bảng Danh mục. Các công thức khác cung cấp toàn bộ bảng dưới dạng giá trị trả về, chẳng hạn như RenameColumns(Catalog, "Price", "Cost"), trả về tất cả các hồ sơ từ bảng Danh mục nhưng thay đổi tên của cột Giá thành Chi phí.

Cũng giống như với các số, các công thức liên quan đến bảng và bản ghi sẽ được tự động tính toán lại khi bảng cơ sở hoặc bản ghi thay đổi. Nếu chi phí của một sản phẩm trong bảng Danh mục được hạ xuống dưới mức tối thiểu trước đó, giá trị trả về của công thức Min sẽ tự động thay đổi để phù hợp với nó.

Hãy xem một số ví dụ đơn giản.

  1. Tạo một ứng dụng trống cho điện thoại và thêm điều khiển Bộ sưu tập dọc có chứa các điều khiển khác.

    Theo mặc định, màn hình hiển thị văn bản giữ chỗ từ một bảng có tên CustomGallerySample. Thuộc tính Items của điều khiển Bộ sưu tập trên màn hình được tự động đặt thành bảng đó.

    Thư viện.

    Lưu ý

    Một số điều khiển đã được sắp xếp lại và mở rộng cho mục đích minh họa.

  2. Thay vì đặt thuộc tính Items thành tên của bảng, hãy đặt nó thành một công thức bao gồm tên của bảng làm đối số, như trong ví dụ này:

    Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)

    Công thức này kết hợp hàm Sort, lấy tên của một bảng làm đối số đầu tiên và tên của một cột trong bảng đó làm đối số thứ hai. Hàm này cũng hỗ trợ một đối số thứ ba tùy chọn, quy định rằng bạn muốn sắp xếp dữ liệu theo thứ tự giảm dần.

    Hàm Sort cho thư viện.

  3. Đặt thuộc tính Items cho một công thức lấy công thức từ bước trước làm đối số và trả về bảng, như trong ví dụ này:

    FirstN(Sort(CustomGallerySample, SampleHeading, SortOrder.Descending), 2)

    Trong công thức này, bạn sử dụng hàm FirstN để hiển thị một số lượng bản ghi cụ thể trong bảng. Bạn sử dụng hàm Sort như là đối số đầu tiên cho FirstN và một số (trong trường hợp này, 2) là đối số thứ hai, trong đó chỉ định số bản ghi để hiển thị.

    Toàn bộ công thức trả về một bảng chứa hai bản ghi đầu tiên của bảng CustomGallerySample, được sắp xếp theo cột SampleHeading theo thứ tự giảm dần.

    FirstN cho thư viện.

Các hàm và thuộc tính điều khiển bảng

Hãy xem xét hàm Lower. Nếu biến welcome chứa chuỗi văn bản "Hello, World", công thức Lower( welcome) sẽ trả về "hello, world". Hàm này không, theo bất kỳ cách nào, thay đổi giá trị trong biến đó. Lower là một hàm thuần túy ở chỗ nó chỉ xử lý đầu vào và tạo đầu ra. Chỉ có vậy và không có tác dụng phụ. Tất cả các hàm trong Excel và hầu hết các hàm trong Power Apps là các hàm thuần túy, cho phép tự động tính toán lại sổ làm việc hoặc ứng dụng.

Power Apps cung cấp một tập hợp các hàm hoạt động trên bảng theo cách tương tự. Các hàm này lấy các bảng làm đầu vào và bộ lọc, sắp xếp, biến đổi, giảm và tóm tắt toàn bộ các bảng dữ liệu. Trong thực tế, Lower và nhiều hàm khác thường lấy một giá trị đơn lẻ cũng có thể lấy bảng một cột làm đầu vào.

  • Sort, Filter - Sắp xếp và lọc bản ghi.
  • FirstN, LastN - Trả về N bản ghi đầu tiên hoặc cuối cùng của bảng.
  • Abs, Sqrt, Round, RoundUp, RoundDown - Các phép toán số học trên mỗi bản ghi của bảng một cột, dẫn đến bảng một cột chứa các kết quả.
  • Left, Mid, Right, Replace, Substitute, Trim, Lower, Upper, Proper - Thao tác chuỗi trên mỗi bản ghi của bảng một cột, tạo ra bảng một cột gồm các chuỗi.
  • Len - Đối với cột gồm các chuỗi, trả về bảng một cột có chứa độ dài của mỗi chuỗi.
  • Concatenate - Nối nhiều cột gồm các chuỗi, tạo ra bảng một cột gồm các chuỗi.
  • AddColumns, DropColumns, RenameColumns, ShowColumns - Thao tác cột của bảng, tạo ra một bảng mới có các cột khác nhau.
  • Distinct - Loại bỏ các bản ghi trùng lặp.
  • Shuffle - Xáo trộn bản ghi thành thứ tự ngẫu nhiên.
  • HashTags - Tìm kiếm hashtags trong một chuỗi.
  • Errors - Cung cấp thông tin lỗi khi bạn làm việc với nguồn dữ liệu.

Nhiều hàm trong số này lấy bảng một cột làm đầu vào của chúng. Nếu toàn bộ bảng chỉ có một cột, bạn có thể chỉ định nó theo tên. Nếu một bảng có nhiều cột, bạn có thể chỉ định một trong các cột đó bằng cách sử dụng cú pháp Table.Column. Ví dụ: Products.Name trả về bảng một cột chỉ gồm các giá trị Name từ bảng Products.

Bạn cũng có thể định hình lại bảng theo ý muốn bằng cách sử dụng hàm AddColumns, RenameColumns, ShowColumns hoặc DropColumns. Một lần nữa, các hàm này chỉ thay đổi đầu ra chứ không thay đổi nguồn.

Thuộc tính của điều khiển cũng có thể là bảng:

  • Items - Áp dụng cho bộ sưu tập, hộp danh sách và hộp tổ hợp. Thuộc tính này xác định bảng mà bộ sưu tập hoặc danh sách hiển thị.
  • SelectedItems - Áp dụng cho hộp danh sách và hộp tổ hợp. Thuộc tính này xác định bảng các mục mà người dùng đã chọn nếu SelectMultiple được bật.

Công thức hành vi

Các hàm khác được thiết kế đặc biệt để sửa đổi dữ liệu và có tác dụng phụ. Vì các hàm này không thuần túy, bạn phải xây dựng chúng cẩn thận và chúng không thể tham gia tự động tính toán lại các giá trị trong ứng dụng. Bạn chỉ có thể sử dụng các hàm này trong công thức hành vi.

  • Collect, Clear, ClearCollect - Tạo tập hợp, xóa và thêm dữ liệu vào.
  • Patch - Sửa đổi một hoặc nhiều trường trong bản ghi.
  • Update, UpdateIf - Cập nhật các bản ghi phù hợp với một hoặc nhiều tiêu chí mà bạn chỉ định.
  • Remove, RemoveIf - Xóa các bản ghi phù hợp với một hoặc nhiều tiêu chí mà bạn chỉ định.

Công thức bản ghi

Bạn cũng có thể xây dựng một công thức tính toán dữ liệu cho một bản ghi riêng lẻ, lấy một bản ghi riêng lẻ làm đối số và cung cấp một bản ghi riêng lẻ làm giá trị trả về. Trở lại ví dụ về bộ sưu tập của chúng tôi ở trên, hãy sử dụng thuộc tính Gallery1.Selected để hiển thị thông tin từ bất kỳ bản ghi nào mà người dùng chọn trong bộ sưu tập đó.

  1. Thêm Nút rồi đặt thuộc tính OnSelect thành công thức sau:
    Collect( SelectedRecord, Gallery1.Selected )

  2. Trong khi giữ phím Alt, hãy chọn nút này.

  3. Trong menu Tệp, chọn Tập hợp.

    Bộ sưu tập SelectedRecord.

Công thức này trả về một bản ghi không chỉ bao gồm dữ liệu từ bản ghi hiện được chọn trong bộ sưu tập mà còn mỗi điều khiển trong bộ sưu tập đó. Ví dụ: bản ghi chứa cả cột SampleText khớp với cột SampleText trong bảng ban đầu và cột Subtitle1 dại diện cho nhãn hiển thị dữ liệu từ cột đó. Chọn biểu tượng bảng trong cột Subtitle1 để phân tích sâu dữ liệu đó.

Lưu ý

Cột Subtitle1 có thể được đặt tên là Subtitle2 hoặc tương tự nếu bạn đã thêm các thành phần ngoài thành phần mà chủ đề này chỉ định.

Bây giờ bạn đã có bản ghi đã chọn, bạn có thể trích xuất các trường riêng lẻ từ đó với toán tử . .

  1. Thêm điều khiển Nhãn rồi di chuyển bên dưới bộ sưu tập và nút.

  2. Đặt thuộc tính Văn bản của nhãn thành biểu thức sau:
    "Selected: " & Gallery1.Selected.SampleHeading

    Thuộc tính văn bản với nhãn được cập nhật.

Bạn đã lấy thuộc tính Selected, là một bản ghi, và trích xuất thuộc tính SampleHeading từ đó.

Bạn cũng có thể sử dụng bản ghi như một bộ chứa mục đích chung cho các giá trị được đặt tên có liên quan.

  • Nếu bạn xây dựng một công thức xung quanh hàm UpdateContextNavigate, hãy sử dụng bản ghi để thu thập các biến ngữ cảnh mà bạn muốn cập nhật.
  • Sử dụng thuộc tính Updates trên điều khiển Chỉnh sửa biểu mẫu để thu thập các thay đổi đã được thực hiện bởi người dùng trong biểu mẫu.
  • Sử dụng hàm Patch để cập nhật nguồn dữ liệu và hợp nhất bản ghi.

Trong những trường hợp này, bản ghi không bao giờ là một phần của bảng.

Các hàm và thuộc tính điều khiển bản ghi

Các hàm trả về bản ghi:

  • FirstN, LastN - Trả về bản ghi đầu tiên hoặc cuối cùng của bảng.
  • Lookup - Trả về bản ghi đầu tiên từ một bảng phù hợp với một hoặc nhiều tiêu chí.
  • Patch - Cập nhật nguồn dữ liệu hoặc hợp nhất các bản ghi.
  • Defaults - Trả về giá trị mặc định của một nguồn dữ liệu.

Các thuộc tính trả về bản ghi:

  • Selected - Áp dụng cho bộ sưu tập và hộp danh sách. Trả về bản ghi hiện được chọn.
  • Updates - Áp dụng cho bộ sưu tập. Tổng hợp tất cả các thay đổi mà người dùng thực hiện trong biểu mẫu nhập dữ liệu.
  • Update - Áp dụng cho các điều khiển đầu vào như điều khiển nhập văn bản và thanh trượt. Thiết lập các thuộc tính riêng lẻ cho bộ sưu tập để kéo lại với nhau.

Phạm vi bản ghi

Một số hàm hoạt động bằng cách đánh giá một công thức trên tất cả các bản ghi của một bảng riêng lẻ. Kết quả của công thức được sử dụng theo nhiều cách khác nhau:

  • AddColumns - Công thức cung cấp giá trị của trường được thêm vào.
  • Average, Max, Min, Sum, StdevP, VarP - Công thức cung cấp giá trị để tổng hợp.
  • Filter, Lookup - Công thức xác định nếu bản ghi nên được bao gồm trong đầu ra.
  • Concat - Công thức xác định các chuỗi để nối với nhau.
  • Distinct - Công thức trả về một giá trị, được sử dụng để xác định các bản ghi trùng lặp.
  • ForAll - Công thức có thể trả về bất kỳ giá trị nào, có khả năng có tác dụng phụ.
  • Sort - Công thức cung cấp giá trị để sắp xếp các bản ghi.
  • With - Công thức có thể trả về bất kỳ giá trị nào, có khả năng có tác dụng phụ.

Bên trong các công thức này, bạn có thể tham chiếu các trường của bản ghi đang được xử lý. Mỗi hàm này tạo ra một "phạm vi bản ghi" trong đó công thức được ước tính, trong đó các trường của bản ghi có sẵn dưới dạng mã định danh cấp cao nhất. Bạn cũng có thể tham chiếu các thuộc tính kiểm soát và các giá trị khác từ ứng dụng.

Ví dụ như bảng Sản phẩm:

Mẫu sản phẩm.

Để tạo bảng ví dụ này trong ứng dụng của bạn, hãy chèn một nút, đặt thuộc tính OnSelect của bảng thành công thức này, sau đó chọn nút (nhấp vào nút đó trong khi giữ phím Alt trong Power Apps Studio):

Set( Products,
    Table(
        { Product: "Widget",    'Quantity Requested': 6,  'Quantity Available': 3 },
        { Product: "Gadget",    'Quantity Requested': 10, 'Quantity Available': 20 },
        { Product: "Gizmo",     'Quantity Requested': 4,  'Quantity Available': 11 },
        { Product: "Apparatus", 'Quantity Requested': 7,  'Quantity Available': 6 }
    )
)

Để xác định xem có bất kỳ sản phẩm nào trong số những sản phẩm này được yêu cầu nhiều hơn không:

Filter( Products, 'Quantity Requested' > 'Quantity Available' )

Đối số đầu tiên cho Bộ lọc là bảng để các bản ghi hoạt động và đối số thứ hai là một công thức. Filter tạo một phạm vi bản ghi để đánh giá công thức này trong đó các trường của mỗi bản ghi đều có sẵn, trong trường hợp này là Sản phẩm, Số lượng yêu cầuSố lượng sẵn có. Kết quả so sánh xác định nếu mỗi bản ghi nên được đưa vào kết quả của hàm:

Đã lọc bảng.

Thêm vào ví dụ này, chúng tôi có thể tính toán số lượng của mỗi sản phẩm để đặt hàng:

AddColumns( 
    Filter( Products, 'Quantity Requested' > 'Quantity Available' ), 
    "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
)

Ở đây, ta thêm cột được tính vào kết quả. AddColumns có phạm vi bản ghi riêng để tính toán sự khác biệt giữa những gì đã được yêu cầu và những gì có sẵn.

Đã thêm cột.

Cuối cùng, chúng ta có thể giảm bảng kết quả xuống chỉ còn các cột mà chúng ta muốn:

ShowColumns(
    AddColumns(
        Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
        "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
    ),
    "Product",
    "Quantity To Order"
)

Đã cập nhật bảng.

Lưu ý rằng ở trên, chúng tôi đã sử dụng dấu ngoặc kép (") ở một số nơi và dấu ngoặc đơn (') ở những nơi khác. Dấu ngoặc đơn là bắt buộc khi tham chiếu giá trị của một đối tượng, chẳng hạn như trường hoặc bảng, trong đó tên của đối tượng chứa một khoảng trắng. Dấu ngoặc kép được sử dụng khi chúng ta không tham chiếu giá trị của một đối tượng mà nói về nó, đặc biệt là trong các tình huống mà đối tượng chưa tồn tại, như trong trường hợp AddColumns.

Định hướng

Tên trường được thêm vào với phạm vi bản ghi ghi đè cùng tên từ nơi khác trong ứng dụng. Khi điều này xảy ra, bạn vẫn có thể truy cập các giá trị từ bên ngoài phạm vi bản ghi với toán tử định hướng @:

  • Để truy cập các giá trị từ phạm vi bản ghi lồng nhau, sử dụng toán tử @ với tên của bảng được vận hành khi sử dụng mẫu này:
    Bảng[@FieldName]
  • Để truy cập các giá trị toàn cầu, chẳng hạn như nguồn dữ liệu, bộ sưu tập và biến bối cảnh, hãy sử dụng mẫu [@ObjectName] (không có bảng chỉ định).

Nếu bảng được vận hành là một biểu thức, chẳng hạn như Filter( Table, ... ), thì toán tử định hướng sẽ không dùng được. Chỉ phạm vi bản ghi trong cùng mới có thể truy cập các trường từ biểu thức bảng này, bằng cách không sử dụng toán tử định hướng.

Giả sử có tập hợp X:

Bộ sưu tập X.

Bạn có thể tạo tập hợp này với ClearCollect( X, [1, 2] ).

Và tập hợp tác là Y:

Bộ sưu tập Y.

Bạn có thể tạo tập hợp này với ClearCollect( Y, ["A", "B"] ).

Ngoài ra, xác định một biến ngữ cảnh có tên Value với công thức này: UpdateContext( {Value: "!"} )

Chúng ta hãy kết hợp tất cả lại. Trong ngữ cảnh này, công thức sau đây:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Y[@Value] & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

tạo ra bảng này:

Bảng XY.

Chuyện gì đang xảy ra ở đây? Hàm ForAll ngoài cùng xác định phạm vi bản ghi cho X, cho phép truy cập vào trường Value của từng bản ghi mà nó xử lý. Nó có thể được truy cập bằng cách sử dụng từ Giá trị hoặc bằng cách sử dụng X [@Value].

Hàm ForAll trong cùng xác định phạm vi bản ghi khác cho Y: Vì bảng này cũng có trường Giá trị được xác định, sử dụng Value ở đây tham chiếu đến trường trong bản ghi của Y và không còn là bản ghi từ X nữa. Tại đây, để truy cập trường Giá trị của X, ta phải sử dụng phiên bản dài hơn với toán tử định hướng.

Y là phạm vi bản ghi trong cùng, việc truy cập các trường của bảng này không yêu cầu định hướng, cho phép chúng tôi sử dụng công thức này với cùng kết quả:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Value & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

Tất cả bản ghi ForAll ghi đè phạm vi toàn cầu. Ngữ cảnh Giá trị mà chúng tôi xác định không có sẵn theo tên mà không có toán tử định hướng. Để truy cập giá trị này, hãy sử dụng [@Value].

Ungroup cân bằng kết quả vì hàm ForAll được lồng sẽ dẫn đến bảng kết quả được lồng.

Bảng một cột

Để hoạt động trên một cột từ bảng, hãy sử dụng hàm ShowColumns như trong ví dụ này:

ShowColumns( Products, "Product" )

Công thức này tạo ra bảng một cột sau:

Bảng một cột.

Một cách ngắn hơn là chỉ định Table.Column trích xuất bảng một cột của riêng Cột từ Bảng. Ví dụ: công thức này tạo ra kết quả chính xác như khi sử dụng ShowColumns.

Products.Product

Bản ghi nội tuyến

Bạn thể hiện các bản ghi bằng cách sử dụng dấu ngoặc nhọn chứa các giá trị trường được đặt tên. Ví dụ: bạn có thể biểu diễn bản ghi đầu tiên trong bảng khi bắt đầu chủ đề này bằng cách sử dụng công thức sau:

{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 }

Bạn cũng có thể nhúng các công thức trong các công thức khác, như trong ví dụ sau:

{ Name: First(Products).Name, Price: First(Products).Price * 1.095 }

Bạn có thể lồng bản ghi bằng cách lồng các dấu ngoặc nhọn, như trong ví dụ sau:

{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand, 'OnOrder': ThisItem.QuantOnOrder } }

Đặt từng tên cột có chứa ký tự đặc biệt, như khoảng trống hoặc dấu phẩy, trong ngoặc đơn. Để sử dụng ngoặc đơn trong tên cột, hãy nhân đôi nó.

Lưu ý rằng giá trị trong cột Giá không bao gồm ký hiệu tiền tệ, chẳng hạn như ký hiệu đô la. Định dạng đó sẽ được áp dụng khi giá trị được hiển thị.

Bảng nội tuyến

Bạn có thể tạo bảng bằng cách sử dụng hàm Table và một bộ bản ghi. Bạn có thể biểu diễn bảng ở đầu chủ đề này bằng cách sử dụng công thức sau:

Table( 
    { Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 },
    { Name: "Bread", Price: 4.95, 'Quantity on Hand': 34, 'Quantity on Order': 0 },
    { Name: "Water", Price: 4.95, 'Quantity on Hand': 10, 'Quantity on Order': 0 } 
)

Bạn cũng có thể lồng bảng:

Table( 
    { Name: "Chocolate", 
      'Quantity History': Table( { Quarter: "Q1", OnHand: 10, OnOrder: 10 },
                                 { Quarter: "Q2", OnHand: 18, OnOrder: 0 } ) 
    }
)

Bảng giá trị nội tuyến

Bạn có thể tạo các bảng cột đơn bằng cách chỉ định các giá trị trong ngoặc vuông. Bảng kết quả có một cột duy nhất, được đặt tên là Giá trị.

Ví dụ: [ 1, 2, 3, 4 ] tương đương với Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) và trả về bảng sau:

Bảng nội tuyến.

Lưu ý

Bạn có thể cho chúng tôi biết bạn thích dùng ngôn ngữ nào cho tài liệu không? Làm một cuộc khảo sát ngắn. (xin lưu ý, khảo sát này bằng tiếng Anh)

Cuộc khảo sát sẽ mất khoảng bảy phút. Không có dữ liệu cá nhân nào được thu thập (điều khoản về quyền riêng tư).