さまざまな連絡先フォームの私のウェブサイト上のすべての提出を記録するGoogleシートを持っています。各連絡フォームが送信された回数と送信された週を知る必要があります。
目標は、Googleシートを次のようにすることです(Googleシートの各タブは、これらのフォームと同じ名前です)。
Week Commencing | Number of Submissions
1st July 2019 | 37
8th July 2019 | 7
私が持っているデータは次のようになります:(「データ」という名前のタブ内)
form name | date
Custom Printed Premium Gift Boxes | 7/4/2019 12:01:28
Googleシートへのリンク: https://docs.google.com/spreadsheets/d/1ffOVvGT7CGV3gXR1HP5kp6Pg1JgD40qRjlt6lwwFbo0/edit?usp=sharing
私の質問:
それを各週番号の最初の日に変換するには:
=ARRAYFORMULA(IF(LEN(B2:B), VLOOKUP(WEEKNUM(B2:B, 2),
{WEEKNUM(ROW(INDIRECT("A"&DATEVALUE(MIN(B2:B))-7&":"&
DATEVALUE(MAX(B2:B)))), 2),
TEXT(ROW(INDIRECT("A"&DATEVALUE(MIN(B2:B))-7&":"&
DATEVALUE(MAX(B2:B)))), "d. mmmm yyyy")}, 2, 0), ))
完全な要約表を作成するには:
=ARRAYFORMULA(QUERY(IF(LEN(B2:B), {VLOOKUP(WEEKNUM(B2:B, 2),
{WEEKNUM(ROW(INDIRECT("A"&DATEVALUE(MIN(B2:B))-7&":"&
DATEVALUE(MAX(B2:B)))), 2),
TEXT(ROW(INDIRECT("A"&DATEVALUE(MIN(B2:B))-7&":"&
DATEVALUE(MAX(B2:B)))), "d. mmmm yyyy")}, 2, 0), A2:A}, ),
"select Col2,Col1,count(Col1)
where Col1 is not null
group by Col1,Col2
label count(Col1)''"))
それを正しいタブに配置するには(スクリプトを使用-手動再計算):
function sheetName() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}
=ARRAYFORMULA(QUERY(QUERY(IF(LEN(data!B2:B),
{VLOOKUP(WEEKNUM(data!B2:B, 2),
{WEEKNUM(ROW(INDIRECT("A"&DATEVALUE(MIN(data!B2:B))-7&":"&
DATEVALUE(MAX(data!B2:B)))), 2),
TEXT(ROW(INDIRECT("A"&DATEVALUE(MIN(data!B2:B))-7&":"&
DATEVALUE(MAX(data!B2:B)))),
"d. mmmm yyyy")}, 2, 0), data!A2:A}, ),
"select Col2,Col1,count(Col1)
where Col1 is not NULL
group by Col1,Col2
label count(Col1)''", 0), "select Col2,Col3 where Col1='"&SHEETNAME()&"'", 0))
それを正しいタブに入れる(スクリプトなし-手動入力)
=ARRAYFORMULA(QUERY(QUERY(IF(LEN(data!B2:B), {VLOOKUP(WEEKNUM(data!B2:B, 2),
{WEEKNUM(ROW(INDIRECT("A"&DATEVALUE(MIN(data!B2:B))-7&":"&
DATEVALUE(MAX(data!B2:B)))), 2),
TEXT(ROW(INDIRECT("A"&DATEVALUE(MIN(data!B2:B))-7&":"&
DATEVALUE(MAX(data!B2:B)))),
"d. mmmm yyyy")}, 2, 0), data!A2:A}, ),
"select Col2,Col1,count(Col1)
where Col1 is not NULL
group by Col1,Col2
label count(Col1)''", 0), "select Col2,Col3 where Col1='Contact Form'", 0))