基本情報技術者試験を倒したい…です!
午前は通るが、午後が…。40点→50点と来たから、60点来い!
苦手分野を潰す
勉強してて思うのは、計算が非常にできないということ。初心に戻ろう!ということで、
これ買いました。
四則計算の復習からあります。馬鹿にするなよーと思って取り掛かったのですが、ハハハ。序盤で間違えちゃった…。
自分の記事と遭遇
以前、書いたVBAでGETPIVOTDATA関数を使う方法。
職場で、GETPIVOTDATA関数についてGoogle先生に探りを入れていたら、割と上位に出てきました。ありがたいのですが、何か、ギョッとしてブラウザ閉じてしまいました。動揺した。
パソコン表示とスマホ表示が全然ちがーう!いじりたいけど、気力がない…
ちなみに、調べていたのは、ワークシート上で、
=GETPIVOTDATA("合計 / 金額",A3,"取引先","井上貿易")
の"井上貿易"を可変にする方法。うまくいかない。
INDIRECT関数がEVALUATEと同じ働きしてくれるんじゃ?と思って
=INDIRECT("GETPIVOTDATA(""合計 / 金額"",A3,""取引先"",""" &C1&""")")
にしたけど、#REFになる。
-----C列----- | -----D列------ |
1 田中商事
2 井上貿易
3 山田情報
D列に数式を縦にコピーして、C1〜C3の値を反映させたい。
(´-`).。oO(手修正やだよー
""が駄目なのか…最後にだけINDIRECTを突っ込めばいいのかなぁ。
VLOOKUPで、シート名を可変にしたい。
=VLOOKUP(A8,[作業ファイル.xlsx]井上貿易!$A$6:$Z$80,18,0)
井上貿易部分(シート名)を可変にする。
INDIRECTを使う
=VLOOKUP(A8,INDIRECT("[作業ファイル.xlsx]"&A1&"!$A$6:$Z$80"),18,0)
- A1は、任意のセル。
- A1に参照したいシート名を入れておく。
- 絶対参照、相対参照は、用途に応じて。
シート名に()が入っているとうまくいかない!
シート名が井上貿易(26年度4月)だと、計算結果が#REFになる。普通にVLOOKUPしてみると、
=VLOOKUP(A8,'[作業ファイル.xlsx]井上貿易(26年度4月)'!$A$6:$Z$80,18,0)
ちょん' 〜'が入るので、これが肝のようだ。
=VLOOKUP(A8,INDIRECT("'[作業ファイル.xlsx]"&A1&"'!$A$6:$Z$80"),18,0)
完成。
シート数が少ないなら、数式をコピーしてシート名を変えればいいけど、50シート近くあったら。
(´-`).。oO(全部シート分VLOOKUPとか…めんどくせぇ
VBAでVLOOKUP
が、うまくいかない。
VBAでGETPIVOTDATA関数が使いたい。
VBAでもワークシート関数が使いたい時は、Object.WorksheetFunction.ワークシート関数。
ただ、ワークシート関数GETPIVOTDATAは呼び出せないので、EVALUATEメソッドを使う。
EVALUATE("式")
式は、文字列として入れる。
=GETPIVOTDATA("合計 / 金額",A3,"取引先","田中商事")
EVALUATE("GETPIVOTDATA(""合計 / 金額"",A3,""取引先"",""田中商事"")")
(´-`).。oO(引用符、多くね?
引用符の中にある引用符は、二つにしないといけないようです。
一番外側はEVALUATE。
EVALUATE("
GETPIVOTDATA(""合計 / 金額"",A3,""取引先"",""田中商事"")
")
ドッキング前を見ると、GETPIVOTDATAで、"合計 / 金額"と"取引先"と"田中商事"が、" "で囲まれているから、それぞれ""合計 / 金額"" ""取引先"" ""田中商事"" になります。