情報管理
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
*Greasemonkey/Tampermonkey [#d8b6dce8]
-「削除された拡張機能のリストには、「Greasemonkey」や「Th...
**table -> csv [#table2csv]
他人のページに勝手に「このテーブルをダウンロード」ボタン...
&ref(myJCBwithcsvbutton2.jpg);
自分のページは自分だけが改変できるし、他人のページはその...
ネットに同等品は幾つかあるが、JCBのサイトでworkしなかった...
次のライブラリを使用。[[GitHub - OmbraDiFenice/table2csv:...
#pre{{
// ==UserScript==
// @name <table> to csv
// @namespace https://over.6pb.info/
// @include https://club.dccard.co.jp/*
// @include https://my.jcb.co.jp/iss-pc/member/*
// @require https://over.6pb.info/lib/jquery.min.js
// @require https://over.6pb.info/lib/table2csv.js
// @grant none
// ==/UserScript==
(function() {
$('table').each(function() {
var $table = $(this);
var $button = $("<button type='button'>");
$button.text("Exp");
$button.insertAfter($table);
$button.click(function() {
$table.table2csv(); //単にダウンロードするならこれだけ
});
});
})();
}}
-実際にJCBの明細(速報)を扱うにはexcludeRows: 'thead tr'...
-この文章を書いた翌日、DCカードの明細(速報)画面に仕様変...
#hr
-こんなに短いならbookmarkletでもできそうだが、bookmarklet...
**Greasemonkey/Tampermonkeyで対応できないもの [#o2fef35b]
-[[Amexの速報>生活/クレジットカード/為替手数料#amex]]
*yet another JavaScript入門 [#l29feb54]
仕事でJavaScriptを始めた人を除き、何がJavaScriptを使うき...
**現在表示しているページからURL一覧を抜き出す [#h812f74c]
例えば、[[外国為替情報 : 三井住友銀行:http://www.smbc.co...
現在表示しているページについて何か調べたい・操作したいと...
-現在表示しているページの特定の領域(CSSで指定)内のリン...
#pre{{
var elms = document.querySelectorAll('#tabbox1 div li a');
for (var i=0; i <elms.length; i++) {
console.log(elms[i].href);
}
}}
-参考: 領域をXPathで指定する
#pre{{
var elms = document.evaluate('//*[@id="tabbox1"]/div//li/...
for (var i=0; i <elms.snapshotLength; i++) {
console.log(elms.snapshotItem(i).href);
}
}}
-結果を、別窓に出力する
#pre{{
var elms = document.querySelectorAll('#tabbox1 div li a');
var w = window.open('about:blank');
w.document.open();
w.document.write('<textarea id="export" rows="40" cols="1...
for (var i=0; i <elms.length; i++) {
w.document.write(elms[i].href + "\n");
}
w.document.write('</textarea>');
}}
-結果を、ファイルに保存する
#pre{{
var elms = document.querySelectorAll('#tabbox1 div li a');
var text = '';
for (var i=0; i <elms.length; i++) {
text += elms[i].href + "\n";
}
var blob = new Blob([text], {type: "text/plain"});
var a = document.createElement("a");
a.href = URL.createObjectURL(blob);
a.target = '_blank';
a.download = 'url.txt';
a.click();
}}
手作業でやるより簡単で、間違いがない。
*表の加工 [#a2267ecd]
&aname(googleSheets);
Google Sheets/Google スプレッドシートが便利だ。
**1次元から2次元へ [#v9079147]
データの取得は左側のように1次元のことが多いだろう。内容を...
&ref(googlesheetswinsat.jpg);
|セル|計算式|c
|F2|=TRANSPOSE(UNIQUE(A2:A))|
|E2|=UNIQUE(C2:C)|
|F2|=FILTER($B:$B,$E2=$C:$C,F$1=$A:$A)|
|G2|=FILTER($B:$B,$E2=$C:$C,G$1=$A:$A)|
|F3|=FILTER($B:$B,$E3=$C:$C,F$1=$A:$A)|
-F2だけなら「=FILTER(B:B,E2=C:C,F1=A:A)」でよい。これを他...
**表(Excelなど)から特定の列と行を抽出する [#yea48369]
やり方は色々あるが,私がよく使うのはfilter関数。(Google ...
=filter({'シート1'!b:b,'シート1'!d:d,'シート1'!f:g},'シ...
UNIXのパイプのようにそのままsortやuniqueをかけられるのも...
-Cf. [[Google スプレッドシートでの配列を使用する - ドキュ...
***vlookupに2つ以上の条件を付ける [#a2449d0b]
vlookupだと、条件を一つしか付けられないが、filterなら幾つ...
#hr
ただ、filterはarrayformulaと組みにできない不利もある。複...
例えば、求める値がC列、検索語と検索範囲のペアが、A列に対...
=filter(c:c,a2=d:d,b2=e:e)
のとき(行2の式)、A列とB列を連結して1列にし、同じくD列と...
|A列とB列を連結して1列に|a2:a&b2:b||
|D列とE列を連結して1列に|d2:d&e2:e||
||||
|検索語|d2:d&e2:e||
|検索範囲|{a2:a&b2:b,c2:c}|この2列目がC列|
|検索範囲を配列に変換|arrayformula({a2:a&b2:b,c2:c})||
=arrayformula(vlookup(d2:d&e2:e,arrayformula({a2:a&b2:b,...
しかしかなり遅いようだ。
**他のファイルから抽出する [#e5cacfe2]
これもやり方は色々あるが,私が使うのはimportrangeとquery...
-なお、「ファイル」は正確には「spreadsheet」。spreadsheet...
例えば、同じファイルのシートs1から{C5:C,F5:F,T5:U}の列を...
=filter({'s1'!C5:C,'s1'!F5:F,'s1'!T5:U},'s1'!N5:N>=5)
これと同じことを別のファイルに対して行うには:
=query(importrange("https://docs.google.com/...","C5:U")...
-記法の違い:
--importrangeは読み込み範囲を飛び飛びで指定できないので,...
--取り込んだ列に順にCol1,...の番地が付く。Cは必ず大文字。
--where以下に行の条件を書く。
親ファイルで作業シートを作り,それを別ファイルでimportし...
***importrangeするとgetLastRow()はworkしない [#lf6f222b]
シートの最終行を知りたいとき、対象列がIMPORTRANGEで読み込...
#pre{{
var col = 1; // 調べる列
var lastrow = 0;
var cells = sheet.getDataRange().getValues(); // 実際の...
for (var i = 0; i < cells.length; i++) {
if (!cells[i][col-1].match(/\w/)) { //配列添字なのでc...
lastrow = i; // 現在のcells[i]は空行を指しているの...
break; //Perlのlastはbreak。continueはnext。
}
}
}}
***queryで空のセルが出る [#k019f115]
「109.69」と「=(P707+Q707)/2」など、ベタに値を入れたセル...
**COUNT in ARRAYFORMULA [#tc051445]
-ARRAYFORMULAとcountifは組合せ可能。countaは不可。
-countifは(ARRAYFORMULAと組む際)「(検索範囲,条件範囲)」...
||=UNIQUE(A2:A)|=ARRAYFORMULA(countif(A1:A,B2:B14))|
|EUR|EUR|20|
|EUR|HKD|32|
|EUR|MYR|43|
|EUR|SGD|15|
|EUR|TWD|41|
|EUR|USD|316|
|EUR|CAD|2|
|EUR|CNY|18|
|HKD|KRW|7|
|HKD|GBP|8|
|HKD|HRK|7|
|MYR|THB|1|
|MYR|TRY|1|
|MYR|||
|SGD|||
|以下続|||
*データ変換 [#tdd09e9a]
**TSV [#x56ab5a0]
-[[x2TSV:http://over.6pb.info/bin/x2tsv.html]]
--段落区切りデータや,スペース文字で桁揃えして表のように...
-例1
--入力(データを作る際は段落区切りの方が楽である。TSVへの...
#pre{{
銘柄
コード
エーザイ
<4523.T>
小野薬品工業
<4528.OS>
東燃ゼネラル石油
<5012.T>
}}
--出力1(TSV)
#pre{{
銘柄 エーザイ 小野薬品工業 東燃ゼネラル石油
コード <4523.T> <4528.OS> <5012.T>
}}
--出力2(行列入替え)
#pre{{
銘柄 コード
エーザイ <4523.T>
小野薬品工業 <4528.OS>
東燃ゼネラル石油 <5012.T>
}}
-例2(スペース文字で桁揃えして表のように整形されたデータ)
--入力(人間には意味が取れるが,エクセルには入力できない...
#pre{{
1)エーザイ <4523.T> 5.11% 884,65...
2)小野薬品工業 <4528.OS> 5.03% 434,44...
3)東燃ゼネラル石油 <5012.T> 4.88% 448,75...
}}
--出力(TSV)
#pre{{
1)エーザイ <4523.T> 5.11% 884,659 17
2)小野薬品工業 <4528.OS> 5.03% 434,449 11
3)東燃ゼネラル石油 <5012.T> 4.88% 448,755 5
}}
---コラム数を指定して変換することもできるし,自動認識もで...
*ローマ字 [#bd91bdb4]
**長音 [#n3a7cc45]
|Unicode code point|character|UTF-8 encoding (hex)|Unicod...
|U+0100|Ā|c4 80|LATIN CAPITAL LETTER A WITH MACRON|
|U+0101|ā|c4 81|LATIN SMALL LETTER A WITH MACRON|
|U+0112|Ē|c4 92|LATIN CAPITAL LETTER E WITH MACRON|
|U+0113|ē|c4 93|LATIN SMALL LETTER E WITH MACRON|
|U+012A|Ī|c4 aa|LATIN CAPITAL LETTER I WITH MACRON|
|U+012B|ī|c4 ab|LATIN SMALL LETTER I WITH MACRON|
|U+014C|Ō|c5 8c|LATIN CAPITAL LETTER O WITH MACRON|
|U+014D|ō|c5 8d|LATIN SMALL LETTER O WITH MACRON|
|U+016A|Ū|c5 aa|LATIN CAPITAL LETTER U WITH MACRON|
|U+016B|ū|c5 ab|LATIN SMALL LETTER U WITH MACRON|
終了行:
#contents
*Greasemonkey/Tampermonkey [#d8b6dce8]
-「削除された拡張機能のリストには、「Greasemonkey」や「Th...
**table -> csv [#table2csv]
他人のページに勝手に「このテーブルをダウンロード」ボタン...
&ref(myJCBwithcsvbutton2.jpg);
自分のページは自分だけが改変できるし、他人のページはその...
ネットに同等品は幾つかあるが、JCBのサイトでworkしなかった...
次のライブラリを使用。[[GitHub - OmbraDiFenice/table2csv:...
#pre{{
// ==UserScript==
// @name <table> to csv
// @namespace https://over.6pb.info/
// @include https://club.dccard.co.jp/*
// @include https://my.jcb.co.jp/iss-pc/member/*
// @require https://over.6pb.info/lib/jquery.min.js
// @require https://over.6pb.info/lib/table2csv.js
// @grant none
// ==/UserScript==
(function() {
$('table').each(function() {
var $table = $(this);
var $button = $("<button type='button'>");
$button.text("Exp");
$button.insertAfter($table);
$button.click(function() {
$table.table2csv(); //単にダウンロードするならこれだけ
});
});
})();
}}
-実際にJCBの明細(速報)を扱うにはexcludeRows: 'thead tr'...
-この文章を書いた翌日、DCカードの明細(速報)画面に仕様変...
#hr
-こんなに短いならbookmarkletでもできそうだが、bookmarklet...
**Greasemonkey/Tampermonkeyで対応できないもの [#o2fef35b]
-[[Amexの速報>生活/クレジットカード/為替手数料#amex]]
*yet another JavaScript入門 [#l29feb54]
仕事でJavaScriptを始めた人を除き、何がJavaScriptを使うき...
**現在表示しているページからURL一覧を抜き出す [#h812f74c]
例えば、[[外国為替情報 : 三井住友銀行:http://www.smbc.co...
現在表示しているページについて何か調べたい・操作したいと...
-現在表示しているページの特定の領域(CSSで指定)内のリン...
#pre{{
var elms = document.querySelectorAll('#tabbox1 div li a');
for (var i=0; i <elms.length; i++) {
console.log(elms[i].href);
}
}}
-参考: 領域をXPathで指定する
#pre{{
var elms = document.evaluate('//*[@id="tabbox1"]/div//li/...
for (var i=0; i <elms.snapshotLength; i++) {
console.log(elms.snapshotItem(i).href);
}
}}
-結果を、別窓に出力する
#pre{{
var elms = document.querySelectorAll('#tabbox1 div li a');
var w = window.open('about:blank');
w.document.open();
w.document.write('<textarea id="export" rows="40" cols="1...
for (var i=0; i <elms.length; i++) {
w.document.write(elms[i].href + "\n");
}
w.document.write('</textarea>');
}}
-結果を、ファイルに保存する
#pre{{
var elms = document.querySelectorAll('#tabbox1 div li a');
var text = '';
for (var i=0; i <elms.length; i++) {
text += elms[i].href + "\n";
}
var blob = new Blob([text], {type: "text/plain"});
var a = document.createElement("a");
a.href = URL.createObjectURL(blob);
a.target = '_blank';
a.download = 'url.txt';
a.click();
}}
手作業でやるより簡単で、間違いがない。
*表の加工 [#a2267ecd]
&aname(googleSheets);
Google Sheets/Google スプレッドシートが便利だ。
**1次元から2次元へ [#v9079147]
データの取得は左側のように1次元のことが多いだろう。内容を...
&ref(googlesheetswinsat.jpg);
|セル|計算式|c
|F2|=TRANSPOSE(UNIQUE(A2:A))|
|E2|=UNIQUE(C2:C)|
|F2|=FILTER($B:$B,$E2=$C:$C,F$1=$A:$A)|
|G2|=FILTER($B:$B,$E2=$C:$C,G$1=$A:$A)|
|F3|=FILTER($B:$B,$E3=$C:$C,F$1=$A:$A)|
-F2だけなら「=FILTER(B:B,E2=C:C,F1=A:A)」でよい。これを他...
**表(Excelなど)から特定の列と行を抽出する [#yea48369]
やり方は色々あるが,私がよく使うのはfilter関数。(Google ...
=filter({'シート1'!b:b,'シート1'!d:d,'シート1'!f:g},'シ...
UNIXのパイプのようにそのままsortやuniqueをかけられるのも...
-Cf. [[Google スプレッドシートでの配列を使用する - ドキュ...
***vlookupに2つ以上の条件を付ける [#a2449d0b]
vlookupだと、条件を一つしか付けられないが、filterなら幾つ...
#hr
ただ、filterはarrayformulaと組みにできない不利もある。複...
例えば、求める値がC列、検索語と検索範囲のペアが、A列に対...
=filter(c:c,a2=d:d,b2=e:e)
のとき(行2の式)、A列とB列を連結して1列にし、同じくD列と...
|A列とB列を連結して1列に|a2:a&b2:b||
|D列とE列を連結して1列に|d2:d&e2:e||
||||
|検索語|d2:d&e2:e||
|検索範囲|{a2:a&b2:b,c2:c}|この2列目がC列|
|検索範囲を配列に変換|arrayformula({a2:a&b2:b,c2:c})||
=arrayformula(vlookup(d2:d&e2:e,arrayformula({a2:a&b2:b,...
しかしかなり遅いようだ。
**他のファイルから抽出する [#e5cacfe2]
これもやり方は色々あるが,私が使うのはimportrangeとquery...
-なお、「ファイル」は正確には「spreadsheet」。spreadsheet...
例えば、同じファイルのシートs1から{C5:C,F5:F,T5:U}の列を...
=filter({'s1'!C5:C,'s1'!F5:F,'s1'!T5:U},'s1'!N5:N>=5)
これと同じことを別のファイルに対して行うには:
=query(importrange("https://docs.google.com/...","C5:U")...
-記法の違い:
--importrangeは読み込み範囲を飛び飛びで指定できないので,...
--取り込んだ列に順にCol1,...の番地が付く。Cは必ず大文字。
--where以下に行の条件を書く。
親ファイルで作業シートを作り,それを別ファイルでimportし...
***importrangeするとgetLastRow()はworkしない [#lf6f222b]
シートの最終行を知りたいとき、対象列がIMPORTRANGEで読み込...
#pre{{
var col = 1; // 調べる列
var lastrow = 0;
var cells = sheet.getDataRange().getValues(); // 実際の...
for (var i = 0; i < cells.length; i++) {
if (!cells[i][col-1].match(/\w/)) { //配列添字なのでc...
lastrow = i; // 現在のcells[i]は空行を指しているの...
break; //Perlのlastはbreak。continueはnext。
}
}
}}
***queryで空のセルが出る [#k019f115]
「109.69」と「=(P707+Q707)/2」など、ベタに値を入れたセル...
**COUNT in ARRAYFORMULA [#tc051445]
-ARRAYFORMULAとcountifは組合せ可能。countaは不可。
-countifは(ARRAYFORMULAと組む際)「(検索範囲,条件範囲)」...
||=UNIQUE(A2:A)|=ARRAYFORMULA(countif(A1:A,B2:B14))|
|EUR|EUR|20|
|EUR|HKD|32|
|EUR|MYR|43|
|EUR|SGD|15|
|EUR|TWD|41|
|EUR|USD|316|
|EUR|CAD|2|
|EUR|CNY|18|
|HKD|KRW|7|
|HKD|GBP|8|
|HKD|HRK|7|
|MYR|THB|1|
|MYR|TRY|1|
|MYR|||
|SGD|||
|以下続|||
*データ変換 [#tdd09e9a]
**TSV [#x56ab5a0]
-[[x2TSV:http://over.6pb.info/bin/x2tsv.html]]
--段落区切りデータや,スペース文字で桁揃えして表のように...
-例1
--入力(データを作る際は段落区切りの方が楽である。TSVへの...
#pre{{
銘柄
コード
エーザイ
<4523.T>
小野薬品工業
<4528.OS>
東燃ゼネラル石油
<5012.T>
}}
--出力1(TSV)
#pre{{
銘柄 エーザイ 小野薬品工業 東燃ゼネラル石油
コード <4523.T> <4528.OS> <5012.T>
}}
--出力2(行列入替え)
#pre{{
銘柄 コード
エーザイ <4523.T>
小野薬品工業 <4528.OS>
東燃ゼネラル石油 <5012.T>
}}
-例2(スペース文字で桁揃えして表のように整形されたデータ)
--入力(人間には意味が取れるが,エクセルには入力できない...
#pre{{
1)エーザイ <4523.T> 5.11% 884,65...
2)小野薬品工業 <4528.OS> 5.03% 434,44...
3)東燃ゼネラル石油 <5012.T> 4.88% 448,75...
}}
--出力(TSV)
#pre{{
1)エーザイ <4523.T> 5.11% 884,659 17
2)小野薬品工業 <4528.OS> 5.03% 434,449 11
3)東燃ゼネラル石油 <5012.T> 4.88% 448,755 5
}}
---コラム数を指定して変換することもできるし,自動認識もで...
*ローマ字 [#bd91bdb4]
**長音 [#n3a7cc45]
|Unicode code point|character|UTF-8 encoding (hex)|Unicod...
|U+0100|Ā|c4 80|LATIN CAPITAL LETTER A WITH MACRON|
|U+0101|ā|c4 81|LATIN SMALL LETTER A WITH MACRON|
|U+0112|Ē|c4 92|LATIN CAPITAL LETTER E WITH MACRON|
|U+0113|ē|c4 93|LATIN SMALL LETTER E WITH MACRON|
|U+012A|Ī|c4 aa|LATIN CAPITAL LETTER I WITH MACRON|
|U+012B|ī|c4 ab|LATIN SMALL LETTER I WITH MACRON|
|U+014C|Ō|c5 8c|LATIN CAPITAL LETTER O WITH MACRON|
|U+014D|ō|c5 8d|LATIN SMALL LETTER O WITH MACRON|
|U+016A|Ū|c5 aa|LATIN CAPITAL LETTER U WITH MACRON|
|U+016B|ū|c5 ab|LATIN SMALL LETTER U WITH MACRON|
ページ名: