用 Google Sheets 表格增强 Tableau 数据分析的 3 种玩法

轻松实现文本翻译、网页数据抓取,甚至创建高级日期表来增强 Tableau 可视化效果!
作为一款强大的数据可视化工具,Tableau 的可视化能力毋庸置疑。然而,对于跟表格打交道的用户来说,它没有“创建表格”的功能,即在数据源端直接生成或输入数据的能力。

因此,如果你有这样的需求,可以将 Google Sheets 用作补充工具,再与 Tableau 仪表板进行无缝结合。

为了验证 1+1 是否 > 2,今天我们就来探索数据粉 Matthias Giger 分享的一些用例,看看如何用 Google Sheets 增强 Tableau 分析!话不多说,马上开始吧~

Tableau + Google Sheets = ?

作为最受欢迎的电子表格工具之一,Google Sheets 就是线上版的 Excel。在早期版本中,Tableau 提供了直连至 Google Sheets 的连接器,可助你轻松分析实时数据。

2023.1 版本后,Tableau 虽然停用了 Google Sheets 连接器,但依然支持连接到 Google Drive 云端硬盘,以便用户灵活分析云端数据表格。

在这里插入图片描述

比如,当用 Google Forms 进行问卷调查时,你可将表单数据存储在 Google Sheets 中,再通过 Tableau 进行可视化分析。这种方法非常适合希望在网站上公示数据的场景,且无需编写代码。

当然了,Google Sheets 的功能绝对不仅于此。接下来,我们就来探索 3 种玩法,看看它如何帮助你增强 Tableau 数据分析。

01 快速实现多语言翻译

在 Google Sheets 中,借助 GOOGLETRANSLATE() 函数,你可以轻松将文本值翻译成多种语言,以便将 Tableau 问卷分析仪表板中的问题、答案或其他内容转化为多语言版本。

在这里插入图片描述

假设,我们需将表格中的“Hello World”文本值翻译成多种语言。如何实现呢?只需在 Google Sheets 中使用以下公式,即可创建一个翻译表:=GOOGLETRANSLATE(A2, B2,C2)

A2:需要翻译的值的单元格

B2:原语言代码,这里为“EN”,即英语

C2:目标语言代码,比如:“ZH”表示中文
在这里插入图片描述

这么做有啥好处呢?之前有数据粉咨询过类似需求,但 Tableau 不支持直接翻译。

借助这种方法,你就可以对问卷的问题、答案或文本数据进行实时翻译,然后将包含翻译结果的 Google 表格连接至 Tableau ,并使用参数操作为不同地区的报表用户显示不同语言的仪表板,实现更个性化的用数体验。

02 用 Google Sheets 抓取网页数据

Google Sheets 的另一个强大功能是通过 IMPORTHTML() 函数从网页抓取数据,对于提取外部数据并丰富 Tableau 可视化内容非常有用。

在这里插入图片描述

假设,我们想从百度百科页面获取巴黎奥运会数据。只需打开 Google Sheets ,任意选择一个单元格输入公式:

=IMPORTHTML(“https://baike.baidu.com/item/2024%E5%B9%B4%E5%B7%B4%E9%BB%8E%E5%A5%A5%E8%BF%90%E4%BC%9A/17619118?fr=ge_ala”, “table”, 1)

URL:数据所在的网页地址

table:表示你想从 HTML 表格中提取数据

1:指的是网页上的第一个表格。如果有多个表格,可更改数字进行抓取

如视频所示,你不需要专门学习或花很多时间进行爬虫,就能快速、自动化地从网页中采集结构化数据,既能节省时间又能解放双手。

此外,通过将最新的网页数据整合到分析中,你可以进一步丰富数据与可视化,并做出更准确、及时的决策。例如,在 Tableau 仪表板中调用 Google Sheets 中最新的统计数据。

03 用 Apps Script 创建高级日期表

此外,Google Sheets 中还支持通过 Google Apps Script 实现高级功能。例如,生成一张日期维度表,以便在分析不同日期类型(如项目里程碑、截止日期)时提供便利。

举个例子,在项目管理中,你可能需要比较实际日期与截止日期,或将多个日期(如开始、里程碑、结束日期)绘制在同一条时间轴上。借助专用的日期表,我们可以独立呈现这些日期,且不依赖事实表中的日期结构。

具体步骤如下:

首先,打开一个新的或现有的 Google Sheets 表格,点击菜单栏中的“扩展程序”- “Apps 脚本”,打开 Google Apps Script 编辑器。
在这里插入图片描述

在 Apps Script 编辑器中,你会看到一个默认的 Code.gs 文件。然后,直接复制以下用于创建日期表的完整代码到 Google Sheets 的 Apps 脚本编辑器中,覆盖默认内容。

PS:代码设置的日期范围是 2020 年 1 月 1 日到 2030 年 12 月 31 日。你可以在代码中的 startDate 和 endDate 变量中调整这个范围。

function createDateTable() {

// 定义起始和结束日期

var startDate = new Date(2020, 0, 1); // 一月在 JavaScript 中是 0

var endDate = new Date(2030, 11, 31); // 十二月在 JavaScript 中是 11

// 计算起始和结束日期之间的天数

var dayCount = (endDate - startDate) / (1000 * 60 * 60 * 24) + 1;

// 获取活动表格

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

// 设置标题行

var headers = [“Date”, “Year”, “Month”, “Month Name”, “Quarter”, “Week Number”, “Day”, “Day of Week”, “Day Name”, “Is Weekend”, “Start of Week”, “End of Week”, “Start of Month”, “End of Month”, “Start of Quarter”, “End of Quarter”, “Start of Year”, “End of Year”, “European Date”, “DateKey”];

sheet.appendRow(headers);

// 生成日期表

for (var i = 0; i < dayCount; i++) {

var currentDate = new Date(startDate);

currentDate.setDate(startDate.getDate() + i);

var year = currentDate.getFullYear();

var month = currentDate.getMonth() + 1; // 一月在 JavaScript 中是 0

var monthName = currentDate.toLocaleString(‘default’, { month: ‘long’ });

var quarter = Math.floor((currentDate.getMonth() + 3) / 3);

var weekNumber = getWeekNumber(currentDate);

var day = currentDate.getDate();

var dayOfWeek = currentDate.getDay();

var dayName = currentDate.toLocaleString(‘default’, { weekday: ‘long’ });

var isWeekend = dayOfWeek == 0 || dayOfWeek == 6;

var startOfWeek = new Date(currentDate);

startOfWeek.setDate(currentDate.getDate() - dayOfWeek + 1); // 周一为一周的开始

var endOfWeek = new Date(startOfWeek);

endOfWeek.setDate(startOfWeek.getDate() + 6);

var startOfMonth = new Date(year, currentDate.getMonth(), 1);

var endOfMonth = new Date(year, currentDate.getMonth() + 1, 0);

var startOfQuarter = new Date(year, (quarter - 1) * 3, 1);

var endOfQuarter = new Date(year, quarter * 3, 0);

var startOfYear = new Date(year, 0, 1);

var endOfYear = new Date(year, 11, 31);

var europeanDate = Utilities.formatDate(currentDate, Session.getScriptTimeZone(), ‘dd/MM/yyyy’);

var dateKey = year * 10000 + month * 100 + day;

var row = [currentDate, year, month, monthName, quarter, weekNumber, day, dayOfWeek, dayName, isWeekend, startOfWeek, endOfWeek, startOfMonth, endOfMonth, startOfQuarter, endOfQuarter, startOfYear, endOfYear, europeanDate, dateKey];

sheet.appendRow(row);

}

}

function getWeekNumber(date) {

var start = new Date(date.getFullYear(), 0, 1);

var days = Math.floor((date - start) / (24 * 60 * 60 * 1000));

var weekNumber = Math.ceil((days + start.getDay() + 1) / 7);

return weekNumber;

}

点击“保存”按钮,为项目命名(如“日期表生成器”)。然后,点击“运行”-“createDateTable”,此时会弹出授权请求,按提示选择你的 Google 账户并授予权限。

成功授权后,再次点击“运行” - “createDateTable”。代码开始执行,并在当前 Google Sheets 表格的第一个工作表中生成日期表。

PS:如果生成的数据过多导致执行超时,可以重新运行代码,并调整 startDate 以跳过已完成的部分,继续生成剩余数据。

在这里插入图片描述

代码执行过程中,Google Sheets 会生成一张全新的日期表,包含以下信息:

Date:具体日期

Year:年份

Month:月份(数字格式)

Month Name:月份名称(英文)

Quarter:季度

Week Number:周数

Day:日期中的“日”部分

Day of Week:星期几(数字格式,0 表示星期天,6 表示星期六)

Day Name:星期几的名称(英文)

Is Weekend:是否为周末(布尔值)

Start of Week / End of Week:每周的开始和结束日期

Start of Month / End of Month:每月的开始和结束日期

Start of Quarter / End of Quarter:每季度的开始和结束日期

Start of Year / End of Year:每年的开始和结束日期

European Date:欧洲日期格式(dd/MM/yyyy)

DateKey:日期键,用于在 Tableau 等 BI 工具中进行数据关联

在这里插入图片描述

如此,你就可以将这个完整日期表用于 Tableau 时间序列分析。PS:可将结果复制到新表或在 Tableau 中使用 UNION 函数进行合并。

正如上文所述,通过结合 Google Sheets 与 Tableau ,你就可以轻松实现文本翻译、网页数据抓取,甚至创建高级日期表来增强 Tableau 可视化效果啦~

无论你是想翻译问卷分析、收集最新的网页数据,还是创建时间轴,Google Sheets 都能提供强大灵活的工具,助你将 Tableau 仪表板变成动态、多语言、数据丰富的可视化作品。

👉 心动不如马上行动!立即打开你的 Google Sheets 试试看吧~

👉 你还可升级到 Google Workspace 企业版,享受 Gemini AI 加持的创新表格体验哦!如有需要,可联系我们咨询~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/16544.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络 (3)计算机网络的性能

一、计算机网络性能指标 速率&#xff1a; 速率是计算机网络中最重要的性能指标之一&#xff0c;它指的是数据的传送速率&#xff0c;也称为数据率&#xff08;Data Rate&#xff09;或比特率&#xff08;Bit Rate&#xff09;。速率的单位是比特/秒&#xff08;bit/s&#xff…

CAP与BASE分布式理论

CAP理论 C&#xff1a;Consistency 一致性&#xff1a;指强一致性&#xff0c;分布式系统中的所有节点在同一时刻具有同样的值、都是最新的数据副本&#xff0c;一致性保证了不管向哪台服务器写入数据&#xff0c;其他的服务器能实时同步数据 强一致性&#xff1a;写入数据的时…

【Java基础知识系列】之Java类的初始化顺序

前言 类的初始化顺序 简单场景 代码示例 public class Person {private String name initName();private String initName() {System.out.println("【父类】初始化实例变量name");return "【父类】史蒂夫";}private int age;private static int staticVa…

探索大规模语言模型(LLM)在心理健康护理领域中的应用与潜力

概述 心理健康是公共卫生最重要的领域之一。根据美国国家精神卫生研究所&#xff08;NIMH&#xff09;的数据&#xff0c;到 2021 年&#xff0c;22.8% 的美国成年人将患上某种形式的精神疾病。在全球范围内&#xff0c;精神疾病占非致命性疾病负担的 30%&#xff0c;并被世界…

解决 idea windows 设置maven离线模式之后,maven继续请求远程仓库

在内网开发的时候经常遇到没有办法来链接远程仓库的情况&#xff0c;这个时候需要设置maven的离线模式。 idea windows 设置maven离线模式之后&#xff0c;maven继续请求远程仓库 当设置完离线模式之后&#xff0c;有的时候执行maven的命令会报错&#xff0c;提示请求远程失败…

卷积神经网络 (CNN)

代码功能 网络结构&#xff1a; 卷积层&#xff1a; 两个卷积层&#xff0c;每个卷积层后接 ReLU 激活函数。 最大池化层用于降低维度。 全连接层&#xff1a; 使用一个隐藏层&#xff08;128 个神经元&#xff09;和一个输出层&#xff08;10 类分类任务&#xff09;。 数据集…

等保二级需要哪些安全设备?

在信息化高速发展的今天&#xff0c;服务器的安全性成为了企业乃至国家信息安全的重要基石。等保二级&#xff0c;作为信息安全等级保护制度中的一个关键环节&#xff0c;对服务器的安全防护提出了明确要求。本文将详细阐述服务器等保二级所需的各种安全设备&#xff0c;旨在为…

C++【深入项目-检测键盘】

神马是检测键盘&#xff0c;就是让编辑器可以检测键盘按下了什么按键&#xff0c;我们先科普复习检测键盘 。 检测键盘需要用到一些函数&#xff0c;请见下&#xff1a; ! KEY_DOWN( 80 ) 这个代码是检测按下键盘上P按键。那80是什么&#xff1f;原来是对应按键的&#xff0…

问题An object named ‘ResNetArcFace‘ was already registered in ‘arch‘ registry!

在安装 GFPGAN 的时候&#xff0c;一切都顺利&#xff0c;但是执行的时候出现了错误&#xff0c;哦还有一个问题&#xff0c; 问题一 就是如果basicsr安装不成功可以执行如下命令 pip install -i https://mirrors.aliyun.com/pypi/simple tb-nightly pip install -i https:/…

Leecode刷题C语言之最少翻转次数使二进制矩阵回文①

执行结果:通过 执行用时和内存消耗如下&#xff1a; 题目&#xff1a;最少翻转次数使二进制矩阵回文① 给你一个 m x n 的二进制矩阵 grid 。如果矩阵中一行或者一列从前往后与从后往前读是一样的&#xff0c;那么我们称这一行或者这一列是 回文 的。你可以将 grid 中任意格子…

K8S containerd拉取harbor镜像

前言 接前面的环境 K8S 1.24以后开始启用docker作为CRI&#xff0c;这里用containerd拉取 正文 vim /etc/containerd/config.toml #修改内容如下 #sandbox_image "registry.aliyuncs.com/google_containers/pause:3.10" systemd_cgroup true [plugins."io.…

三、计算机视觉_01图像的基本操作

0 前言 图像的读取和处理是计算机视觉领域中的一个基本任务&#xff0c;在Python中&#xff0c;有几个流行的库可以用来读取和处理图像数据 0.1 Matplotlib介绍 Matplotlib是Python中一个非常流行的绘图库&#xff0c;它通常用于数据可视化&#xff0c;虽然它不是专门的图像…

Liunx-Ubuntu22.04.1系统下配置Anaconda+pycharm+pytorch-gpu环境配置

这里写自定义目录标题 Liunx-Ubuntu22.04.1系统下配置Anacondapycharmpytorch-gpu环境配置一、Anaconda3配置1.Anaconda安装2.Anaconda更新3.Anaconda删除 二、pycharm配置1.pycharm安装 三、pytorch配置 Liunx-Ubuntu22.04.1系统下配置Anacondapycharmpytorch-gpu环境配置 一…

[Mysql] Mysql的多表查询----多表关系(下)

4、操作 方式二&#xff1a;创建表之后设置外键约束 外键约束也可以在修改表时添加&#xff0c;但是添加外键约束的前提是&#xff1a;从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。 语法&#xff1a; alter table <从表名> add constr…

WukongCRM:github高分开源项目,基于微服务架构 +vue ElementUI的前后端分离CRM系统

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 WukongCRM 是一款基于 Spring Cloud Alibaba 微服务架构和 Vue ElementUI 前后端分离的 CRM 系统。它在中国开源管理软件行业具有较高的知名度&#x…

【C#】C#编程入门指南:构建你的.NET开发基础

文章目录 前言&#xff1a;1. C# 开发环境 VS的基本熟悉2. 解决方案与项目的关系3. 编辑、编译、链接、运行4. 托管代码和CLR4.1 CLR&#xff1a;4.2 C# 代码第编译过程&#xff08;两次编译的&#xff09; 5. 命名空间6. 类的组成与分析7. C# 的数据类型7.1 值类型7.2 引用类型…

文心一言 VS 讯飞星火 VS chatgpt (392)-- 算法导论25.1 6题

六、假定我们还希望在本节所讨论的算法里计算出最短路径上的结点。说明如何在 O ( n 3 ) O(n^3) O(n3) 时间内从已经计算出的最短路径权重矩阵 L L L 计算出前驱矩阵Ⅱ。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 要计算前驱矩阵 $ \pi $&#xff0c;我们…

《网络硬件设备完全技术宝典》

《网络硬件设备完全技术宝典》 网卡 集线器 交换机 路由器 双绞线 光缆 无线接入点AP 交换机技术与选择策略 冗余链路技术 由于物理链路和网络模块的损坏都将导致网络链路的失败&#xff0c;因此两个设备之间&#xff0c;特别是核心交换机与汇聚交换机之间的单链路…

CC3学习记录

&#x1f338; CC3 之前学习到的cc1和cc6都是通过Runtime进行命令执行的&#xff0c;如果Runtime被加入黑名单的话&#xff0c;整个链子也就失效了。而cc3则是通过动态类加载机制进行任意代码执行的。 &#x1f338; 版本限制 JDK版本&#xff1a;8u65 Commons-Collections…

机器学习 ---线性回归

目录 摘要&#xff1a; 一、简单线性回归与多元线性回归 1、简单线性回归 2、多元线性回归 3、残差 二、线性回归的正规方程解 1、线性回归训练流程 2、线性回归的正规方程解 &#xff08;1&#xff09;适用场景 &#xff08;2&#xff09;正规方程解的公式 三、衡量…