我一直认为这应该很容易,但答案是回避我.在Excel Power Query中,我想根据另一列的值转换列的每一行中的值.例如,假设我有Table1如下:
Column A | Column B
-------------------
X | 1
Y | 2
Run Code Online (Sandbox Code Playgroud)
我想根据列B中的值转换A列中的值,而不必添加新列并替换原始列A.我尝试使用TransformColumns但输入只能是目标列的值 - 我可以从TransformColumns函数中访问行/记录中的其他字段值.我想能够做这样的事情:
=Table.TransformColumns(Table1, {"Column A", each if [Column B]=1 then "Z" else _ })
Run Code Online (Sandbox Code Playgroud)
这将导致:
Column A | Column B
-------------------
Z | 1
Y | 2
Run Code Online (Sandbox Code Playgroud)
我知道有办法做到这一点,但我试图找到一个步骤/转换量最少的方法.例如,我知道我可以使用Table.AddColumn 基于查看B列的函数添加新的 A列,但是我必须删除原始的A列并将其替换为新的A列,这需要多个额外的步骤.
我在myexcel.xlsx中设置了Power Query.我将其连接的属性设置为 this和this.
我写了一个如下的VBA代码
Sub UpdateData()
Dim filename As String
Dim wbResults As Workbook
filename = "C:\myexcel.xlsx"
Set wbResults = Workbooks.Open(filename)
ActiveWorkbook.RefreshAll
wbResults.Close savechanges:=True
End Sub
Run Code Online (Sandbox Code Playgroud)
当我手动打开myexcel.xslx时,Power Query连接会更新.但是通过VBA代码却没有.我应该添加我使用旧式Excel连接测试它,并通过VBA代码正常工作.但问题出在Power Query连接上.有什么想法吗?
Power Query 中的列将 JavaScript 时区转换为英国格式:
= #datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [Timestamp]/1000)
Run Code Online (Sandbox Code Playgroud)
但这会产生错误的输出(-1hr 差异),大概是由于 UTC / GMT+夏令时差异?
我尝试使用以下代码再次转换:
= DateTimeZone.ToLocal(#datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [Timestamp]/1000))
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
Expression.Error: We cannot convert the value #datetime(2019, 7, 11, 23, 11, 40) to type DateTimeZone.
Details:
Value=11/07/2019 23:11:40
Type=Type
Run Code Online (Sandbox Code Playgroud)
我该如何正确地做到这一点?
编辑:
Timestamp = Text.BetweenDelimiters([ReceivedTime], "(", ")"), type text
Run Code Online (Sandbox Code Playgroud)
其中[ReceivedTime]是以毫秒为单位的 JSON 日期,例如:/Date(1562886700000)/
可能有一种更明智的方法来转换 JSON 日期,而无需借助Text方法。
生成的解决方案应在 Power BI 报告中正确显示 - …
我特别尝试使用 Power BI 中的 Power Query 编辑器将A 列中的字符串:转换yyyymmdd为日期格式。dd/mm/yyyy我已经可以使用下面的公式在 Excel 中执行此操作:任何想法
Excel
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
Run Code Online (Sandbox Code Playgroud) 我通过Excel 2010中的Power Query(版本:2.10.3598.81)连接到MS SQL数据库.
我的日期以UTC格式存储在数据库中,但是我想在电子表格中将它们显示为本地日期.
DateTimeZone.From() - 转换为DateTimeZone类型,但假定输入日期位于本地时区.这与我想要的完全相反.
DateTimeZone.ToLocal() - 给出错误,我想因为源日期中没有时区信息.
在我的案例中,本地是澳大利亚东部时间,但如果Excel刚拿到当地时区,那将是很棒的.(它似乎已经这样做了)
我试图使用电源查询连接到运行在(localdb)\ v11.0上的数据库,但我总是遇到以下错误:
DataSource.Error:Microsoft SQL:您尝试连接的SQL Server实例不支持加密.详细信息:Message =您尝试连接的SQL Server实例不支持加密.数字= 20等级= 20
谢谢你的评论.
是否可以在powerquery公式中执行Excel的Countifs / Sumifs公式?假设我将[Column1]作为“标准范围”,将[Column2]作为“标准”(示例标准[Column2]文本包含“ Product”),并且我希望在新的自定义列([Column3] ])
当您使用Web.Page(Web.Contents('url'))函数从网页中读取表格时,某些站点会因换行不一致而导致错误。
DataSource.Error: 服务器违反了协议。Section=ResponseHeader Detail=CR 后必须跟 LF
似乎没有任何选项可以传递给 Web 函数来忽略这些错误。
此方法仅适用于一小段时间,但在保存/刷新后无法继续使用:
let
BufferedBinary = Binary.Buffer(Web.Contents("http://vote.sos.ca.gov/returns/president/party/democratic/county/all")),
CleanedUp = Text.Replace(Text.Replace(Text.FromBinary(BufferedBinary), "#(cr,lf)", "#(lf)"), "#(lf)", "#(cr,lf)"),
Table = Web.Page(CleanedUp)
in
Table
Run Code Online (Sandbox Code Playgroud) 我正在使用OAuth REST API公开的基于云的服务.
我有一个有效的Python脚本,通过它我可以先发布用户名,密码和api令牌来获取身份验证令牌.然后我使用api和身份验证令牌来获取数据.这是我的Python脚本:
import requests
base_url = 'https://example.com'
user_name = 'john_doe'
password = 'pssw0rd'
api_token = '4r-eueyta-dh7cuq-26'
timeout_min = 1
headers = {'Accept': 'application/json'}
# get authentication token
auth_url = base_url + '/api/authenticate'
data = {'Username': user_name,
'Password': password,
'ApiToken': api_token,
'AuthorizationTokenTimeoutMinutes': timeout_min}
r = requests.post(auth_url, headers=headers, data=data)
# the entire string response is the auth token
auth_token = r.text
# get data
proj_url = base_url + '/api/project/active?' + \
'api-token={0}&authentication-token={1}'.format(api_token, auth_token)
r = requests.get(proj_url, headers=headers)
print(r.text)
Run Code Online (Sandbox Code Playgroud)
这工作正常.
接下来,我想在Microsoft …
我有一张桌子,我每天都可以获得员工任务的状态.
如下图所示,我得到了值(机密,所以只输入了虚拟数据).
然后我没有取消任何日期列,并制作了一份副本并用空格分割,以便我可以获得日期值.
在这里,我想在每个任务的表格可视化中显示最后3个注释值.
如上图所示,如果5/31/2017的值不可用,那么它应该得到5/29/2017计划,5/29/2017实际值,5/30/2017计划值,即除了最后3个非空白值.
请给我任何建议.
莫汉五世
powerquery ×10
powerbi ×7
excel ×5
m ×3
date ×1
dax ×1
newline ×1
python ×1
rest ×1
sql-server ×1
vba ×1
web-scraping ×1