忍者ブログ

Excel.sys

Excelでどこまでできるか! ExcelとStiLLでビジネス・デザイン自由自在!!

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Excel関数でWebから情報を得る

Excel関数でWeb?
実はExcel2013からそんな関数が追加されています。

◆こんな時
マクロやVBAを使わずに簡単にWebから情報を得たい!

◆解決ポイント
「WEBSERVICE」関数を使います。
XMLでレスポンスされるサイトで使用できます。
また「FILTERXML」関数で抽出箇所を絞ることができます。

◆解決方法
例えば皆さんもよく参照するウィキペディア(Wikipedia)を例に説明します。

1)キーワードに関する情報をXMLで出力するサイト「WikipediaAPI利用」への
 リクエストは以下の記述になります。

(例:キーワード「URL」を調べる場合)
 http://wikipedia.simpleapi.net/api?keyword=URL または
 http://wikipedia.simpleapi.net/api?output=xml&keyword=URL

 具体的にセルA1には以下のアドレス式を入力します。
 ="http://wikipedia.simpleapi.net/api?output=xml&keyword="&B1
 またセルB1には検索文字 URL を入力します。


2)この記述を直接またはセルを参照してWEBSERVICEで指定します。
 ここではセルA2に上記のセルA1を参照する式を入力します。
 =WEBSERVICE(A1)

 この結果説明文を含むすべてのソースがセルA2に表示されます。
 

3)表示された中からFILTERXMLで説明文のみを取り出します。
 セルA3に次の式を入力して抽出箇所を指定します。
 =FILTERXML(A2,"/results/result/body")

 この結果セルA3に、下図のように説明文のみを取り出すことができます。


 セルA4にはここまでの式を1行にまとめた式を示しています。
 式をまとめることでセルA2のようなワーク領域は不要になります。

 またセルA5はIFERROR関数でネストしエラー時に can not find!! と
 表示するようにした式を示しています。

セルB1に検索したい文字を入力することで検索結果がセルA3に表示されます。
なお検索する文字は完全一致である必要があります。(大小文字も判別)

・出典:Wikipedia

◆「StiLL」のコマンドボタンについて
「StiLL」のボタン(BtTextRead)を使うと通常のCSVデータはもちろん、
公開されているWeb上のテキスト形式データを取り出すことも可能です。
たった一つのボタンで株価情報を取り出すプログラム?も作成可能です。

あなたの手作業をやさしく自動化できる!

「StiLL」体験セミナーがあなたを待っています。
 左側の(お知らせ)から直接申し込みできます。しかも無料。

それではまた来週。

PR

VLOOKUP関数で2つの検索値を条件にする方法

今回はVLOOKUP関数で、2つの検索値を条件にする方法をご紹介します。

VLOOKUP関数で検索結果を求める場合、
「ID」や「名前」など1つの検索値しか指定できません。
しかし「ID」や「名前」が重複する場合は、正しい値を抽出することができません。

その場合、新たに検索値を生成することによって、
正しい値を抽出することができます。

◆こんな時
VLOOKUP関数を使って、複数の検索値で結果を抽出したい。

◆解決ポイント
新しい検索値を生成する。

◆使用方法

1.下記の図で、特定の人の点数を出したい場合、
VLOOKUP関数で「ID」を検索値に指定しても、重複しているため
正しい結果を求めることができません。

 

2.そこで、新しく検索値を生成します。(下図のB列)
「ID」と「名前」の組み合わせで一意のデータになりますので(重複データにならない)
「ID」と「名前」を結合した項目(「検索キー」項目)を新しく作成します。
B3セルに「=C3&D3」の計算式を設定し、表の下部までコピペします。




3.「ID」が「1」で「名前」が「佐藤」さんの点数を求めます。
(G3セルに「1」、H3セルに「佐藤」と入力します。)




4.I3セルにVLOOKUP関数を設定します。
I3セルに「=VLOOKUP($G$3&$H$3,$B$2:$E$8,4,FALSE)」を入力します。



VLOOKUP関数で複数条件を使用して、結果を求めることができました。

◆「StiLL」について
「StiLL」には便利機能がたくさんあります。
通常のプログラミング言語のような構文や文法を使用することなく、
処理を自動化する設定が可能です。

興味が沸きましたら、定期的に「体験セミナー」(無料)を開催しているので
一度参加してみてください。

https://www.still.co.jp/event/semina.html

それではまた来週

IFNA 関数

これまで VLOOKUP関数を使う事例をいくつか取り上げてきました。

その際、VLOOKUPの参照結果が正しく行われない場合、つまりエラーとなる
ケースを想定しそれを補完する関数としてIFERROR関数を使用してきましたが
別の関数も使えることを覚えておきましょう。

IFERROR関数はエラー全般([#DIV/0!][#N/A][#NAME?][#NULL!][#NUM!][#REF!][#VALUE!])に対応します。

これに対し、エラー内容を#N/Aに特定する場合にIFNA関数を使います。

◆こんな時
#N/A(ノーアサイン)エラーを判別したい。

◆解決ポイント
IFNA関数を使います。

◆解決方法
例えば以下のようにセルB9に表の列より大きい列番号(5)を指定した式を
入力した場合、同じ式でも検査値によりエラー内容が異なります。

セルB9=VLOOKUP(A1,B1:C7,5,FALSE)

1.検査値(セルA1)が表B列に存在する場合
      ・・・・・・・・・・・・ B9 = #REF!(リファレンス無効)

2.検査値が表B列に無い場合
      ・・・・・・・・・・・・ B9 = #N/A(ノーアサイン)

このセルB9の式をIFNA関数でネストすることで#N/Aエラーを判別できます。
例:=IFNA(VLOOKUP(A1,B1:C7,5,FALSE),"存在しません。")

この結果、

1.の場合は、 #REF!
2.の場合は、存在しません。

と表示されます。

◆「StiLL」のコマンドボタンについて
「StiLL」のデータ読込みボタン(BtMerge、BtRecordQuery等)の機能では
上記のような任意の式を組込むことができデータ取得と同時に算出結果を求める
ことが簡単に実現します。
あなたの手作業をやさしく自動化します。

是非「StiLL」体験セミナーへ参加してみてください。
「StiLL」があなたの働き方改革を支えます!

それではまた来週。

串刺し入力

今回は「串刺し入力」の方法をご紹介します。

「串刺し入力」とは、複数のシートをまたいで同じ番地のセルに同じ内容を入力する方法です。

◆こんな時
同じフォーマットのシートを複数作成する際に、同じ内容を入力したい。

◆解決ポイント
同じ入力をしたい任意の複数シートを選択。

◆使用方法
1.任意の複数シートを選択します。(作業グループ化します)
(例では「Sheet1」と「Sheet2」)



2.任意のシートに値を入力
(例では「Sheet1」)


すると、「Sheet2」にも同じ位置に同じ値が反映されます。

 

※作業グループを解除するには、未選択のシートをクリックします。
(例では「Sheet3」)

(全てのシートが作業グループ化されている場合は、任意のシートをクリックします)


◆「StiLL」について
「StiLL」には便利機能がたくさんあります。
通常のプログラミング言語のような構文や文法を使用することなく、
処理を自動化する設定が可能です。

興味が沸きましたら、定期的に「体験セミナー」(無料)を開催しているので
一度参加してみてください。

https://www.still.co.jp/event/semina.html

それではまた次回。



消費税率逆算の考察

通常は消費税率が先にあってそれを使って消費税額を求めるのですが、
最近、逆に本体価格と消費税額のみから消費税率を求める場面に直面しました。

年月があれば簡単ですが・・・この機会に来年秋には10%への引き上げが迫って
いる消費税率を本体価格と消費税額のみで算定できるかを考えてみます。

◆こんな時
本体価格と消費税額から消費税率を求める。

◆解決ポイント
過去の消費税率(3%,5%,8%)を前提とします。
単純に消費税額を本体価格で割っただけでは求められません。
今回はVLOOKUP関数で近似値から消費税率を求める方法を示します。

◆解決方法
まず消費税額の特徴を頭に入れておきましょう。
消費税額は計算結果の1円未満の扱いは事業者に委ねれらています。

つまり、切り上げ・四捨五入・切り捨てを選択できますが
ここでは一例として「切り捨て」を選択している前提で話を進めます。

この場合、本体価格が消費税率で割り切れるときは問題ありませんが
割り切れない場合は小数部が生じても切り捨てられてしまいます。

したがって元の値を知ることができません。ここは重要なポイントです。

実際にシミュレーションをしてみます。仮に本体価格を10円とすると、
消費税率が 3%(懐かしい)の場合は 0.3円
消費税率が 5%(少しまえ)の場合は 0.5円
消費税率が 8%(いま現在)の場合は 0.8円
消費税率が10%(はや来年)の場合は 1円となります。

すでにお気づきのように 3%から 8%までは1円未満となり
実際の消費税額は 0円になります。
当然この結果からは正しい消費税率を求めることはできません。

ではいくらであれば本体価格と消費税額だけから消費税率を求めることが
可能なのか?

仮に単純に上記の本体価格を10倍した100円で同様に計算すると、
それぞれ3円、5円、8円、10円となり税率を判別できる値になります。
このことから求める値は10円と100円の間にありそうです。

実はこのような場合は最小公倍数を求め、その値を一番小さい要素(値)で
割った結果が求める値となります。

因みに 3、5、8、10 の最小公倍数は 120 です。
3 が一番小さい要素ですので 120 を 3 で割ると 40 になります。

したがって40円以上の値(本体価格)であれば年月に頼らずに
消費税率を求めることができそうです。

実際に消費税額を計算してみると・・・
 40円の 3%は 1.20(円) 消費税額は 1円
 40円の 5%は 2.00(円) 消費税額は 2円
 40円の 8%は 3.20(円) 消費税額は 3円
 40円の 10%は 4.0(円) 消費税額は 4円
ときれいな結果が得られました。

またこの時の実質税率を上記の消費税額から求めると
  3%の場合は 1円÷40円×100=2.5%(≒3%)
  5%の場合は 2円÷40円×100=5%
  8%の場合は 3円÷40円×100=7.5%(≒8%)
10%の場合は 4円÷40円×100=10%
となり消費税額からの逆算では変動(誤差)があることがわかります。

更に考察すると40円以上での消費税率(%)の最低率は次の通りでした。
  3%の場合、66円のときの 1.515%(消費税額=1.98円 を 1円とするため)
  5%の場合、59円のときの 3.389%(消費税額=2.95円 を 2円とするため)
  8%の場合、49円のときの 6.122%(消費税額=3.92円 を 3円とするため)
10%の場合、49円のときの 8.163%(消費税額=4.90円 を 4円とするため)

ここまでの結果を踏まえ下表のように整理することができます。
 
上の表名を「換算表」として次の式を記述することで消費税率が得られます。

=VLOOKUP(ROUNDDOWN(消費税額/本体価格*100,2),換算表,2,TRUE)

・ROUNDDOWN関数で消費税額/本体価格*100を小数第2位までとします。
・その数値からVLOOKUP関数の近似値参照で換算表の消費税率を取得します。

以上から本体価格が40円以上の条件を満たすケースであれば年月が無くとも、
上の表と式から消費税率を求めることが可能であることがわかりました。

(考察結果)
本体価格が40円以上なら消費税額を本体価格で割り100倍した値を元に
過去の税率から正しい消費税率を求めることができる。

参考
40円未満でも8%と10%に絞れば10~12円、20~24円、30~37円は判別可能。

◆「StiLL」のコマンドボタンについて
「StiLL」のデータ読込みボタン(BtMerge、BtRecordQuery等)の機能では
上記のような任意の式を組込むことができデータ取得と同時に計算結果を求める
ことが簡単に実現します。
あなたの手作業をやさしく自動化します。

是非「StiLL」体験セミナーへ参加してみてください。
あなたの働き方改革を「StiLL」が支えます!

それではまた来週。

お知らせ

「StiLL体験セミナー」
(東京 恵比寿)
!!NEW!!
 StiLL体験セミナー

日付:2020年2月4日(火)
時間:14:00~17:00
場所:アイエルアイ総合研究所
   
参加費:無料(定員8名)
詳細・お申込:こちらから

ブログ内検索

Copyright ©  -- Excel.sys --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]