advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 228 for エラー値 #N/A (0.017 sec.)
エラー値 (861), #n/a (1385)
[[20080529000012]]
#score: 10842
@digest: 86306dcfb18a452d03136d7ab2419909
@id: 38138
@mdate: 2008-07-04T04:17:23Z
@size: 58698
@type: text/plain
#keywords: 細照 (278939), 債務 (143798), 会!$ (143198), 務明 (132073), 払伝 (116423), 照会 (110231), ja2136 (102316), 入リ (94753), 票no (76083), 伝票 (45164), 書no (39446), 品書 (29899), 票番 (29719), 明細 (27893), 差額 (26831), 支払 (24483), 納品 (16656), 購入 (15825), 受付 (15799), 相手 (10212), 毎月 (9921), 金額 (9413), 部署 (9159), vlookup (6135), シー (5600), ・・ (5292), ート (4684), デー (4047), ータ (3578), リス (3560), 番号 (3515), hana (3071)
『支払伝票(続き) 』(JA2136k-8) 5/13iに支払い伝票の作成で、掲載させて頂いたものですが、その際はどうもありがとう ございました。無事にマクロをコピーさせて頂いて伝票Noを引っ張れたのですが、 初心者で本当に申し訳ないのですが教えて下さい。 一度書いた、マクロはそのまま、何もせずにずっと有効かと思っていたのですが、 違うようなのです。Sheet1の金額欄の金額を変えてみたら、伝票Noが消えるかと 思ったのですが、消えない→つまり、あとから入力した、更新情報が反映されないのです。 マクロって常に更新されたものを反映するとばかり思っていたのですが、何故なんでしょう? 実行ボタンを押す以外に何か手順を踏まねばならないのでしょうか? お忙しいところ恐縮ですが、MOOKさんまた助けて下さいませ。 ---- 一応前の御質問です。 [[20080513000055]]『支払い伝票の作成』(JA2136 ka-8) 以下は質問に関することでは無いですが 貴方はもっと人の話に耳を傾けなければいけません。 新規投稿の際に、投稿文はどの様な書式で書くよう 書いて有りましたか? http://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=new また「初めての方へ」は読みましたか? http://www.excel.studio-kazu.jp/wiki/excelboard/ (5)Wikiに書き込む場合の整形ルール が書いてあります。 (HANA) ---- タイトル等修正2008/5/29 9:04 (to-risugari) ---- 慣れないうちは書き方に戸惑うかもしれませんが、プレビュー機能もありますので 読みやすいようにしてください。 (あるいは、もしかして携帯から入力しているのでしょうか?) マクロにはいくつか種類(使い方)があります。 ◆コマンドボタン等に割り当ててユーザが起動タイミングを操作するもの あるいは、マクロの実行から起動する 全モジュールで記載可能・・・(引数は書けない) ◆自ブック、自シートにおいてあるきっかけ(セルの変更、選択、クリックなど)に 応じて処理が行われるもの ブックモジュール、シートモジュールに記述(関数名は規定されている) ◆シート上で関数のように使用するもの・・・・ユーザ定義関数 標準モジュールに記述・・・(引数が書ける) その他説明はしませんがクラスやフォームといったものもあります。 今回のケースは、標準モジュールのプロシージャですから、セルの更新だけでは 結果は変化しません。 これを行うためにはシートモジュールの Worksheet_Change 等を使用する必要が あります。 前回のものは処理の前に結果の欄を消していないので、その点も対応が必要です。 (Mook) ---- HANAさん、投稿のルールもよくわきまえず大変失礼致しました。 自宅パソコンから投稿しておりますが、何せ夜分なので、眠くて・・・。 本当は職場からしたいのですが、私の席の後ろをよく、 上司が通りかかり、じっと、画面を見ている時があって、 ちょっと気が引けるのです。 自分で考えろ!が口癖の厳しい上司なので、 ずるこして人に教えてもらったら怒られてしまう恐れがあるので。 MOOKさん、早速ありがとうございます。 マクロと一口に言っても随分種類があるのですね。 私の買った本にはそんな詳しくは載っていなかったような、 というか、もしかして私が理解できていないだけ?かもしれませんが。 毎月、毎月シート1に全物件のリスト、そして、 シート2に自分の部署のリストという具合に毎月、 2枚ずつシートを増やしていってそれにきちんと対応でき、 尚且つ、入っている数値が変わっても、 それに対応できるような仕様にしたいと思います。 また、金額からではなく、以前書かれていたかとも思いますが、 (金額は同じ物が結構たくさんあるので)納品書の番号から引こうと 思っているのですが、もう一度下記に、転記しますので、 お忙しいところ恐れ入りますがご教授願えませんでしょうか? K N CK 納品書NO 相手先コード 省略 支払伝票NO (たくさんの項目がある表なので、非表示にしているのです。が、 位置関係というか、納品書番号から、支払伝票番号までは、 9個分のセルです これがSheet1です) ABC D E F G M 購入年月日 部署名 責任者 受付No(納品書No) 金額 省略 支払い科目 Sheet2 (M以降のセルに、支払い伝票Noを持って来たぃのです) もしかしてVLOOKUPでできるのかな?とか思いつつも、VLOOKUPが よくわかっていず、うまく出来ないのです。 本当にお恥ずかしい話ですが、何卒、この情けない頭の私に ご教授くださいませ。 よろしくお願い致します。 (JA2136k-8) ---- 各行の先頭に半角スペースを入れないと改行されて表示されません。 とりあえず今日は整形だけ。 また、明日回答します。 (Mook) ---- 相変わらず、回答では有りませんが・・・・ 投稿のルールと言うより、 「自分の話を聞いてもらいたければ、人の話も聞きましょう」 と言う事です。 それが、投稿するときのルールだったり この様な場所での、貴方への質問 だったりします。 私は前の時に、何度も >それぞれの表にいくつかデータを入れて >作った式と一緒に載せて と書きましたが、載せて下さいませんでしたよね? 前の時に、整形ルールも書きましたが、読んでくださって無かったようです。 実生活でも考えてみてください。 自分の主張ばかりして、話を聞いてくれない人の話を聞こうと思いますか? 分からないなりにも、話を聞いて 反応を示してくれる人には 話もしようと思いますし、何かあったら手をさしのべようと思いますよね? 私が言いたかったのは >投稿のルールもよくわきまえず と言う事ではなく、 「書いてあること(貴方に向けられた言葉)はちゃんと読みましょう」です。 読んで下さってますか? さて、一つ質問です。 >納品書の番号から引こうと思っているのですが >もしかしてVLOOKUPでできるのかな? 納品書の番号は、検索範囲に一つしか出てきませんか? 出てこないなら、VLOOKUP関数で出来ると思います。 複数出てくるなら、最初に出てきた物しか参照出来ませんので 同じ事ですけどね。 ただ、シート構成等良く分からないので (このあたりが特に >毎月、毎月シート1に全物件のリスト、そして、 >シート2に自分の部署のリストという具合に毎月、 >2枚ずつシートを増やしていってそれにきちんと対応でき、 検索範囲が数シートの範囲になるのですかね?) 難しいかもしれません。 (HANA) ---- HANA さんが不明な点を指摘していますが、私もその点がわかりません。 毎月シートがどのように変わっていくのでしょうか。 Vlookup がうまくいかないというのは、どのような式を試したか書いた 方が良いです。「うまくいきませんでした。」だけではアドバイスのしようが無いので。 いずれにせよ、正確に状況を出したほうが解決は早いですよ。 (Mook) ---- HANAさん、下さった言葉を決しておろそかにしているわけではないのです。 ご指摘の通り、これが私の困った点でして、焦ってしまうと前回の資料を読み直す、という、当たり前のことが出来無かったり する事があるので、反省しています。実生活というか、仕事上でもホントに困ってます。 本当にごめんなさい。深呼吸してから、言葉にする、と、いつも心に言い聞かせておりますが、投稿の前にも同様にするよう、 心がけます。 さて、本題です、納品書番号は、1つです。 1件の購入物件に対し、納品書の番号が1つ。 K N O Y AK AO BA CK CL 納品書NO 相手先コード 相手先名 品名 金額 部署名 勘定科目 支払伝票No 計上日 10121303 1.00E+11 ××× ○○○ 50000 総務部 消耗品 200800001 H20.4.5 (Sheet1) ABC D E F G HIJ K L M 購入年月日 部署名 責任者目 受付 金額 請求年月日 請求 備考 支払科目 H20.4.5 大阪支店 △△△ 135432 108000 (Sheet2) ざっと、こんな感じです。 Sheet1には、会計システムから、拾ってきた、相手先別買掛金の明細表、これが、毎月分、増えていき、 Sheet2には、当該の相手会社からの、こちらの部署への売掛金のリスト、毎月分増えます。 やっぱり説明が我ながら下手でごめんなさい。 そして私の作った式が、 =IF(ISERROR(VLOOKUP(F5,買掛金明細照会!$K$39:$CL$747,9,0))=TRUE,"",VLOOKUP(F5,買掛金明細照会!$K$39:$CL$747,9,0)) だったのですが、何故だか、2という数字がかえってきまして。 ??? 何が悪かったのでしょうか? ああ、すみません、眠さが限界で。 明日、補足説明を書き込みます。 (JA2136 K-8) ------------- 上記編集しました -------------- 「初めて方へ」を再度お読みになっては。。。半角スペースで書き始める!ですよ。 プレビューを見てから投稿するよう心がけてください。こちらの勝手な言い分ですが、編集するのも大変です。 ご提示の式に限定すれば下記のようにしても同じ動きをします。 =IF(COUNTIF(買掛金明細照会!$K$39:$K$747,F5),VLOOKUP(F5,買掛金明細照会!$K$39:$CL$747,9,0),"") Sheet2の受付No(F5)をSheet1の納品書NOから検索して、計上日(9番目)を返すことになりますね。 また、この式はどこに設定してあるのでしょう。全体像は把握しておりませんのであしからず。(gon-2) ---- gon-2さん、ご提示頂いた式を入れてみたのですが、 入力した数式にはエラーがあります。と、出ます。 計算で使用する関数に必要な情報(引数)を入力して下さい。 と出るのですが。何が問題なのでしょう? =IF(COUNTIF(債務明細照会!$K$39:$K$747,F4)),VLOOKUP(F4,債務明細照会!$K$39:$CL$747,8,0),"") と入れたのですが。 COUNTIFは初めて使用します。以前、どこかに書いてありましたね? 何故COUNTIFで出来るのかって。 もう一度読み返して見ます。 本当にとろくさくて申し訳ございません。 (JA2136 K-8) ---- =IF(COUNTIF(債務明細照会!$K$39:$K$747,F4)),VLOOKUP(F4,債務明細照会!$K$39:$CL$747,8,0),"") ^^ ) が多いのでは。。。(gon-2) ---- 私もあわてもので、そそっかしいほうなので、人のことは言えませんが、 >深呼吸してから、言葉にする、と、いつも心に言い聞かせておりますが、 >投稿の前にも同様にするよう、心がけます。 というのは、とてもよい心がけだと思います。 あわてなくとも良いので、ゆっくりみんなの回答を読んでみてはどうでしょうか。 文書整形は、 「文章の先頭に、 半角スペース を書いてください。」 です。 改行使用すると、つながってしまうか、間抜けになるのでお勧めしません。 ついでに式の解説ですが、IF の構文は IF( 条件, 条件が真のとき, 条件が偽のとき) ですが、今回は IF( COUNTIF(対象範囲, 条件), VLOOKUP(...), "") という形になっています。 条件の部分は条件式でも良いのですが、条件の部分で数値が 0 のとき偽、 0以外は真として機能します。 ここで、COUNTIF は対象範囲から、条件のデータをカウントしますので、要は データがあれば(0以外) VLOOKUP の結果が、 データが無ければ(0) ""(空) という処理を行うための、IF 構文です。 (Mook) ---- 一応お伺いしますが、その式の本質部分 =VLOOKUP(F4,債務明細照会!$K$39:$CL$747,8,0) が、正しく参照出来る事は確認済みですか? そうそう、ゆっくりで良いですからね〜。 (HANA) ---- HANAさん、鋭いご指摘です。VLOOKPの()部分からして、出来ていませんでした。 試しに、IFを取り除いて、VLOOKUPだけで、支払い伝票NOを引っ張ってこれるかどうか、 やってみたのですが、#REFが出てしまいます。 うーん、何故でしょう?IFやCOUNTIFにまで、たどり着けない。 Sheet2の購入リストのQ列に数式を入れたのですが。 =VLOOKUP(F4,債務明細照会!$K$39:$K$747,9,FALSE) 以前LOOKUPなら、うまくいったのですが。 不思議です。 頭がさびついててごめんなさい。 どなたか原因をお教え頂けませんでしょうか? (JA2136 K-8) ---- まずは、エラーの意味を考えてみてはどうでしょうか。 #REF は参照先がおかしいという時にでますので、シート名が変わったりしていませんか。 (Mook) ---- HANAさん、MOOKさん、gon-2さん、ゆっくりではありましたが、何とかREFの原因を突き止めました。 参照先がおかしかったようです。と言いますのも、たくさん項目のある表(Sheet1)を ずぼらして列を表示しない、にして折りたたまれた状態のまま、参照していたのです。 ふっと気がついて、再表示して後いらない部分は削除して表そのものを加工して参照しましたところ、 エラーが出ずに、無事に支払い伝票NOが引っ張って来れました。 ずぼらはいけませんね。反省してます。 そして、VLOOKUPのみならず、=IF(COUNTIF・・・の数式で無事に伝票Noが来ました。 やはり )が一つ多かったようです。 取り除きましたところ、きちんときました。 本当にアドバイスありがとうございます。 やっぱり、しっかり自分の頭で考えないといけませんね。 これを機にもっと、しっかりエクセルを勉強します。 マクロも興味がありますし。MOOKさんのおかげで少し道が開けた感じですし。 今後ともよろしくお願い致します。 (JA2136 k-8) ---- >文書整形は、 >「文章の先頭に、 半角スペース を書いてください。」 >です。 ..._| ̄|○ (Mook) ---- 出来ましたか。良かったです。 そちらのエクセルは、こちらからは見えません。 正確な情報を開示するか それが出来ないので有れば 貴方が正確に提示された物を変更する必要があります。 どちらも出来ずに「出来ません」と言われただけでは 何が悪いのか調べる方法はこちらには有りません。 次からは >ざっと、こんな感じです。 ではなく、「実際はどうなのか」を しっかり確認して、投稿なさるのが宜しいかと思います。 それにしても、相変わらず >毎月、毎月シート1に全物件のリスト、そして、 >シート2に自分の部署のリストという具合に毎月、 >2枚ずつシートを増やしていって の部分がよく分かっていませんが、出来た式は この部分はクリア出来ているのですか? 出来ている、或いは妥協する なら良いですが・・・・。 【質問1】この部分はクリア出来ているのですか? 文書整形・・・・難しいですね。 >「文章の先頭に、 半角スペース を書いてください。」 の意味が分からないのですかね? それとも、あえて改行を反映させない形を貫かれるのでしょうか・・・? 【質問2】改行が反映されるようにしないのは何故ですか? (HANA) ---- よく見ると、(JA2136 k-8)さんの発言の最初の行の先頭にはスペースが入っていますね。 これは私の書き方が悪かったかな。 文書整形は 「各行の先頭に、 半角スペース を書いてください。」 としなければならなかったようですね。 まぁ、それはさておき、問題は解決したようで何よりでした。 (Mook) ---- >これは私の書き方が悪かったかな。 そう言う事ですか。 「空の行を入れた場合は、次の行の先頭にも 半角スペースを入れないと その行の改行は反映されません」 ですね。 _スペースで始めると【改行】 改行ができる。 (ここが空行の場合) _もう一度スペースで始めると【改行】 改行される。 (ここが空行の場合) スペースで始めないと【改行】改行があっても続けて表示される。 ってなルールに成っています。 「_」が半角スペース、【改行】が 改行位置を表しています。 ・・・なお、表示はイメージです・・・。 (HANA) ---- HANAさん、MOOKさん、あとのご心配までして頂いてありがとうございます。 【質問1】の答えはできていません。と言うか、毎月新たに購入リストが来て、又 明細照会も毎月新たにCSVファイルで、システムから、落としてきますので、 それを 参照するのに、前月と 同じ式を入れて行く事になるかと思います。 妥協というのか、何と言うのか・・・。 思うに、こういう、毎月同じ操作をする、という事に関して、マクロというものは 効力を発揮するのでしょうか? 【質問2】の答え、改行・・・・。 ごめんなさい。ようやく意味がわかった私。 お脳味噌がお豆腐状態でございまして・・・・。(汗) もう、ホントにお恥ずかしい。 年ですねえ。そうでなくてももともととろいのですが、 何だか最近、とみに、このぼけぶりが加速してる。 頭にすぐに入ってこないのです。本当にいらいらさせて 申し訳ございませんでした。 若年性アルツハイマーだったりして・・・・。 とにかく、何とか理解できましたので、以降 投稿時、気をつけます。 (JA2136 k-8) ---- >毎月新たに購入リストが来て、又 >明細照会も毎月新たにCSVファイルで、システムから、落としてきますので ようやく分かった気がします。 想像では、 新しいリストと新しいファイルをつき合わせていくのだが データが無い場合は、古いファイルのデータから捜す とか、そう言う事かと思っていたのですが・・・・ 例えば「発注データ」と「相手会社からの売掛データ」を見比べると言った。 これだと、発注月と購入月にずれが生じる事が有りますよね。 >Sheet1には、会計システムから、拾ってきた、相手先別買掛金の明細表 >Sheet2には、当該の相手会社からの、こちらの部署への売掛金のリスト でしたら、寧ろ違っている方がおかしいので 両方とも最新(当月)のデータ同士を見比べれば良い つまり、先月のデータがどうなっていても基本的には関係ない って事ですね。(未検収 等は別として。) 二つのデータシートは12ヶ月分が一つのブックに入っている必要が有るのですか? (しかも、関数が入った状態で。) まぁ、1つのブックに24シート入っていても良いのですが・・・・ >前月と 同じ式を入れて行く事になるかと思います。 と言う考え方ではなく ●式の入ったシートに、データを貼り付ける と言う考え方だと、少しは手間が無くなるかもしれません。 まず、式はセル範囲を指定した式ではなく 列で指定した式に変更します。 その後、シートを2枚作って於いて、 データが有った場合にこの式が入る列の先頭セルに、 式を入れておきます。 参照先シートは、もちろん 相手のシートにして於いてください。 データが来たら、この2枚のシートを2枚セットでコピーします。 (Ctrl キーを押しながら、2枚のシートを選択し、コピー) データを貼り付けて、最初から入っている式を最終行まで延ばします。 「支払科目」の項目は最終行までデータが隙間無く入って居ますかね? その場合は、アクティブセルの枠の右下の黒い四角い部分をダブルクリックで 最終行まで式をコピーする事が出来ると思います。 2枚のシート名を変更して 終了。 と言った流れです。 ・・・まぁ、わざわざそれようのシートを用意せず 前月のシートをコピーして、データだけ貼り替えても 良いかもしれませんけどね。 >思うに、こういう、毎月同じ操作をする、という事に関して、マクロというものは >効力を発揮するのでしょうか? 今回のような事では・・・何とも言い難い所だと思います。 例えば、二つのファイルを指定した場所に置いて実行したら 自動で取り込み、式も入った状態にする 所まで作ってしまえば、楽に成るとは思いますが 今回のように、式をコピーするだけ の場合は コードを作る時間をとるより フィルドラッグ(或いは最終行の調整)をした方が早くないですか? ・・・って気がしますが。 上記の様なコードが作りたい と言うご希望は多々有りますので 検索してみたら、見つかると思いますよ。 (今ですと、過去ログまで行かずとも 一覧の中にも2・3有ると思います。) 単純だけど、もっと手順が多い が、ルーチンな作業 と言う事で有れば「マクロの記録」等で 簡単に、効果的な物が出来るかもしれません。 例えば、「並べ替え」等。 項目が多いと、選択するのが結構面倒ですよね。(笑) (HANA) ---- HANAさん、大変ご丁寧なアドバイスをありがとうございます。 しかし、私には少し難しいかも・・・? >二つのデータシートは12ヶ月分が一つのブックに入っている必要が有るのですか? 考えてみれば12ヶ月分入っている必要はないかもしれません。 1ヶ月分毎のブックでもかまわないかもしれません。 >●式の入ったシートに、データを貼り付ける と言う考え方だと、少しは手間が無くなるかもしれません。 おおっ!何だか手間が省けるのは嬉しいと思ったのも束の間。 >まず、式はセル範囲を指定した式ではなく 列で指定した式に変更します。 ??? >その後、シートを2枚作って於いて、 データが有った場合にこの式が入る列の先頭セルに、 式を入れておきます。 参照先シートは、もちろん 相手のシートにして於いてください。 データが来たら、この2枚のシートを2枚セットでコピーします。 (Ctrl キーを押しながら、2枚のシートを選択し、コピー) ごめんなさい。ずっと考えているのですが、 ちょっと意味が理解できなくて。 前回のをコピーするのでも無論そんな時間はかからないので、 いいとは思うのですが、できれば手間をかけずに 毎回同じ作業なので、簡単にできるようにはしておきたいとは思うのです。 ただ、せっかく書いて下さったものが理解できなくって ホントに申し訳ないです。 表をつくっておいて、式を入れておくんですよね? 物分りが悪く、呑み込みが非常に遅いので、 もう少しだけご説明頂けませんか? 後、マクロだと >例えば、二つのファイルを指定した場所に置いて実行したら 自動で取り込み、式も入った状態にする 所まで作ってしまえば、楽に成るとは思いますが というところまで出来てしまうのですね? すごい・・・。 過去ログ見には行ってるのですが、なかなか理解するのも 難しい。正直なところ。 でもあきらめたくはないので、 少しずつでも、読み漁っていこうと思ってます。 時間かかった割りに進んでいなくて焦ってますが、 どうか、このちょいと、呑み込みの遅いおばさんに もう少しお付き合いくださいませ。 (JA2136k-8) ---- 本当は順番に話が進むのが良いと思うのですが どれが順番なのか良く分からないので(笑) 取りあえず、思いついたままに書いてみます。 ですので、そちらでしっかり順序立てて読んでください。(笑) 【1】 まず、アクティブセルの枠の右下は黒い■に成って居ますよね? 例えば、 [A] [B] [C] [1] 1 1 2 [2] 2 2 [3] 3 3 C1に=SUM(A1:B1)と言う式が入っている時 C1セルをアクティブにして、右下の黒い■に マウスポインタを合わせると、 白い十時が黒い十字に変わります。 この時、ダブルクリックを行うと B列(一つ左の列)のデータが連続して入っている 最終行まで、C1(アクティブセル)の数式を 自動的にコピーしてくれます。 まず、「最終行まで式をコピーする」手間は この方法を採ることで クリアする事にしましょう。 もちろん、一ヶ月の件数はほぼ変わらないでしょうから 有る程度式を入れて於いて 後で微調整 或いは 余る分はそのまま放って於く事にしても良いのかもしれませんけどね。 データがない場所は、空欄を返す式に変更しても良いと思いますし。 どの方法を採るのが良いのかは、データの状態や 後は、好みに依ると思います。 【2】 次に >まず、式はセル範囲を指定した式ではなく >列で指定した式に変更します。 に関してですが・・・・話を聞いてみると 大したことではないのですよ。 (しかも、シートの状態に依っては出来ない かもしれないのですが・・・・) 現在の式が =VLOOKUP(F4,債務明細照会!$K$39:$CL$747,9,FALSE) に成っている場合ですが、今月の 「債務明細照会」のデータが747行よりたくさんの場合は 式を変更する必要があります。 毎月「747行より多くないか?」ってのを確認するのは忘れて仕舞いそうなので 式を747で区切るのではなく、列で参照 =VLOOKUP(F4,債務明細照会!$K:$CL,9,FALSE) にしておきます。 ‾‾‾‾‾‾ すると、何行目までに成っても大丈夫ですよね? ただ、一つ不安なのは39行目までに何が入っているか? なのですが・・・この行までにも納品NOが入っていて 39行目以降と重複する場合は またまたVLOOKUP関数で 正しい値を引っ張れないことになってしまいます。 39行目までは空欄 或いは納品NOと重複する物が無いのであれば 列で参照して於いても問題ないと思います。 【3】 >その後、シートを2枚作って於いて、 の部分に関してですが まず重要な事は、照合結果のこれらのデータが 今後必要かどうか? と言う事です。 (3-1) 例えば、 今月分を照合して システムに反映したら これらの情報はもう要りませんよ。 と言うので有れば 1月に1ブックを使うことにして データ貼り付け用のブックを作っておくのが簡単だと思います。 「データ貼り付け用のブック」と言っても大層な物ではなく 先月照合したブックの データ部分を削除した物です。 これを『テンプレート』として使います。 新しいデータが来たら、 1.『テンプレート』をコピーして 2.それぞれのシートに、それぞれのデータを貼り付け 3.式をコピー(或いは調整)して 4.名前を付けて保存 と言う手順です。 (3-2) もしも、今後データを見たり 集計したりする可能性があるのなら 例えシートに別れているにしても 一つのブックに まとまっている方が良い様に思います。 その場合は、テンプレートとなる「シート」を用意します。 これだって、ブックの場合と同じように >先月照合したシートの データ部分を削除した物 です。 3-1と違って少し面倒なのは 新しいデータが来た時に新しいシートを作るために 『テンプレート』のシートを複製する所です。 例えば、 Sheet2 [A] Sheet3 [A] [B] [1] 1 [1] 1 2 ←=Sheet2!A1+A1 [2] 2 [2] 2 4 [3] 3 [3] 3 6 この様な2枚のシートが有ったとします。 Sheet2が社内の買掛データ Sheet3が得意先からの売掛データと思ってください。 今回は、Sheet3(得意先からの売掛データ)の方に Sheet2(社内の買掛データ)を参照する式が入って居ますよね? ここで、Sheet3を単独でコピーします。 すると、B2の式は =Sheet2!A1+A1 のままで、Sheet2の値を参照します。 でも、Sheet2は「テンプレート」のシートなので 今月のデータを貼り付ける訳にはいきません。 Sheet4を作って、そこに今月のデータを貼り付けることにして 式もSheet4を参照するように変更するので有れば ・・・計算は出来る様に成りますが これって結構手間ですよね。 そこで、Ctrlキーを押しながら、Sheet2とSheet3を選びます。 シートタブが二つとも白くなると思います。 この状態でシートをコピーします。 (シートのコピーは、Ctrl キーを押しながら ドラッグ&ドロップ すると、簡単に出来ると思います。) シート名は Sheet2(2) Sheet3(2) に成ります。 Sheet3(2)のB2セルの式を見ると ='Sheet2 (2)'!A1+A1 ちゃんと、Sheet2(2)のセルを参照してくれています。 今月のデータは Sheet2(2) と Sheet3(2)の それぞれに貼り付ければ、Sheet3(2)の式は 変更しなくても 正しく参照し、値を返してくれます。 少し手間に成りますが 1.『テンプレート』のシートを【2枚選択】して同時にコピー 2.それぞれのシートに、それぞれのデータを貼り付け 3.式をコピー(或いは調整)して 4.名前を付けて保存 と言う流れになります。 【4】 ここからは、少し新たなお話なのですが 現在関数を使って 受付No = 納品書NO に対応する 「支払い伝票No」 を表示して居られるのですよね? でも、本当にやりたいことは「金額」の照合じゃないんですか? でしたら、も一つ列を作り 受付No = 納品書NO に対応する 「金額」を VLOOKUP関数で引っ張ってくることにして その相違をIF関数で判定するのはどうでしょう? 「=」に成れば「""」ですよ。「=でない」場合に、「その金額を表示」です。 >参照先がおかしかったようです。 や >表そのものを加工して参照しましたところ、エラーが出ずに、 >無事に支払い伝票NOが引っ張って来れました。 と言う事ですので、現在の表のレイアウトがどうなっているのか 分かりませんので、式は載せませんが・・・・。 おそらく、毎月行う作業だと思いますので なるべく手間のない方法を採るのが良いと思います。 毎月データを貼り付けた後、不要な部分を削除するのは 手間ですよね? もちろん、 必要なデータはK:Xの範囲に集まっているから その部分をコピーして、A列から貼り付ける と言うので有れば、そちらの方が良いかもしれませんが・・・。 いずれにしても、先に式が入っているシートを作って於くなら そのシートでの列の削除や移動は行わない方が良いです。 (式がずれる可能性が有るので) 式が正しくできていれば、参照先の範囲が広くても 正しい答えを返すはずです。 まずは【2】の「列で参照する式」を作る所から もう一度 データを貼り付ける事から考えた 作業が少なくて済むような式 を考えてみるのが良いかもしれません。 たくさん書きましたが、ゆっくりで良いですからね。 出来たところまで、 何処まで出来たか・何処を決めたか お話を伺いながら 続けて行ければと思います。 (HANA) ---- HANAさん、頂いたお題、【3】まで何とか理解し、空のシートを作成しました。 ダブルクリックでのコピーも、これは知らなかったのですが、大変便利ですね? その月限りで、あと、不用になるわけではないでので、 3-2を使うのがいいかなあという感じです。 大変遅くなってすみません。 なかなか、牛歩って感じで、前に進みません。 ところで、本題です。【4】はまさしく、求められている条件であります。 どうしてわかりました?さすがHANAさん。 当面、支払伝票Noを引っ張ってくる事により、あとはいちいち、金額が同じかどうかの 確認をしてきたのですが、本来的にはそこまですべきのようです。 そこで、IF,今まで使用したと言えば、簡単な1つの条件のみのIF文だけなので、 こういったネストが必要なものとなると、疑問符がつくのですが・・・・。 でも一度,考えてみて、又SOSを出します。 全く自分の頭を使わないで、教えていただくと どうしても応用が効かず、厳しいものがあるかと思いますので。 頑張って今晩考えて来ます。 過去ログも当たって見ます。 考えた式をどこが間違っているか検証して頂くと いう風にさせて頂きますね。 待ってて下さい。 【追伸】空のシートでの、動作確認済ませました。 列指定だけの式で、引っ張ってこれました。 ありがとうございます。 よろしくお願い致します。 (JA2136 k-8) ---- >【3】まで何とか理解し、空のシートを作成しました。 なんだか一気に順調に事が運んでいるようですね。 (実はレスは3日後くらいかと思っていました・・・・。 大変失礼な目算をしていたようです。ごめんなさいね。) >【4】はまさしく、求められている条件であります。 それでは、頑張りましょうね〜。 >IF,今まで使用したと言えば、簡単な1つの条件のみのIF文だけなので、 では、まずは簡単に考えていきましょう。 もしも躓いて居られたら、↓の様にもう一度やってみて下さい。 式を作っている間は作業列をたくさん使うのが簡単に出来ると思います。 O列以降が空いている物として話を進めていきます。 実際は空いている列を使用して作成して下さい。 1.O列に、VLOOKUP関数を使用して 受付No = 納品書NO に対応する 「金額」 を表示させます。 (これは、現在出来ている式の一部変更で 出来ますよね。) 2.次に、P列では IF関数を使って O列で求まった金額と、客先の金額からの金額G列が等しい場合に「""」 そうでない場合は、O列の値を表示 と成る式を作ります。 両方出来たら、両方の式を載せて下さい。 勿論 >でも一度,考えてみて 完成したら、いきなりその式を突きつけて頂ければ宜しいので!! (HANA) ---- HANAさん、こんばんわ。 【4】のIF文を作成しました。 自分で考えますとか言いながら、やはりヒントに頼ってしまいました。(笑) だけど不思議なんです。 金額が一致しない場合、は、O列を表示するのでなく、O列から、リストのG列の金額を引いて その差額を見ようと思ったのですが、通常にデータが入っているシートに入れたら、きちんとその差額を 表示してくれるのに、空のシートに、入れたら#NAが帰りマス。 =IF(COUNTIF(債務明細照会!$A$2:$A$147,F5),VLOOKUP(F5,債務明細照会!$A$2:$J$147,5,FALSE)) データの入った購入リストのO列、金額表示させる式 =IF(O5=G5,"",O5-G5) データの入った購入リストのP列、金額の差額表示させる式 この2つの式はちゃんと値を返してくれるのです。 つまり金額があってれば、空白を返すし、合ってない、伝票Noが見当たらない 場合、FALSEが返っていたら、それを0と仮定?するのか、例えば-38900と G列の値にマイナス表示して出てます。 次は空のシート =VLOOKUP(F5,'債務明細照会 貼付用シート'!$A:$J,5,FALSE) 空のシートに式を入れておいたもので、O列、金額を表示させる式 上記のデータの入ったシート用のCOUNTIFだと、空のシートだと エラーが出るので、VLOOKUPのみの式にしています。 =IF(G5=O5,"",O5-G5) 空のシートに入れたP列の式、データの入った式と同じ内容なのですが。 なのに、空のシートに、前月分をコピペしてもってきても IFの差額求める式が反応しない、#NAが出ます。 うーんWhy? シートの順番いりますね? こんな具合です。 シート1 購入リスト 部署 受付a@金額 請求年月日 請求a@備考 支払科目 支払伝票No 金額 差額 シート2 明細照会 納品書NO 相手先コード 相手先名称 品名 金額 部署名 予算名称 勘定科目名称 支払伝票NO 計上日 こんな具合です。名称は若干変えてますが、配列に違いはありません。 何がおかしいのやら、申し訳ございませんが、 ひとつご検証をお願い致します。 (JA2136 K-8) ---- はい、こんばんは。 頑張ってますね〜。 どこから何処までが一つのまとまりなのか良く分からないので 違うところをくっつけて話をしているかもしれませんので その辺りは気をつけて読んでください。 >空のシートに、入れたら#NAが帰りマス。 これは、VLOOKUP関数が #NA を返していませんか? >つまり金額があってれば、空白を返すし、合ってない、伝票Noが見当たらない >場合、FALSEが返っていたら、それを0と仮定?するのか、例えば-38900と >G列の値にマイナス表示して出てます。 この部分のご説明は実際と同じですか? 1.金額が合っている場合 G5=O5 が TRUE なので「""」 2.金額が合ってない場合 O5-G5 が計算され 差が表示される 3.伝票Noが見つからない場合(O5にFALSEと成っている場合) 0-G5 が計算され「-38,900」になる の3パターンになりませんか? それとも、2の場合も「-38,900」に成るのでしょうか? まず、「FALSE」を四則演算(+-*/) すると「0」として扱われます。 ですから >FALSEが返っていたら、それを0と仮定?するのか この部分の想定は アタリ です。 空のシートで試してみられた時は・・・ >IFの差額求める式が反応しない、#NAが出ます。 と言う事ですが・・・上でも書きましたが >=VLOOKUP(F5,'債務明細照会 貼付用シート'!$A:$J,5,FALSE) の結果は、どの様になっているのですかね? ここは、何かしらの値を返しているのに、P列で#NAエラーが出ますか? ・・・ちょっと考えにくいですが・・・。 >シートの順番いりますね? 項目もあった方が分かりますが、 式を作るためにはセル番地が要るのです。 項目だけでは、どの列に何が入っているのか分からないのですよね・・・。 取りあえず、最初がA列から始まっているとして話をします。 「購入リスト」の金額が C列 支払伝票No がH列で、I列以降が空いている場合です。 それと、「購入リスト」のどのNoと「明細照会」シートの 納品書Noを比べるのか分からないので、B列の 受付No と言う事にしておきます。 (なんて両方が変換しながら読まなくても良いように 行列番号もつけて載せて下さいね。 行列番号と式を載せて下さっていれば 少しは実際の表を推測も出来ますので。) せっかく式を載せて下さって要るのですが もっと詳しく「何がどの様になっているのか」 ご説明を頂かないと、何がどうなっているのか分かりません。 ですので、こちらでも何がおきているのか分かりやすい様に もう一度、作業列をたくさん使って一つずつ考えてみましょう。 I列 B列が空欄か?【 = 】 J列 B列が'明細照会シート'!$A の中に0個あるか?【COUNTIFで数えて =0 と比べる】 K列 I,J列のどちらかに TRUE が含まれるか?【OR関数】 L列 VLOOKUP関数で単価を求める 【VLOOKUP関数・列参照させて下さい】 M列 L列 と C列は 等しいか?【 = 】 N列 L列とC列の差【 - 】 まずは、分かりやすい様にデータの入ったシートを使って作成し 出来た式をこちらへ載せて下さい。 シート名も長いのは場所をとるので、短い物を使って下さい。 上の段階ではどんな結果になっても(エラーに成っても) 気にせず式を作って、下さいね。もちろん「正しい結果を返さない」 ってのは論外ですが。 また、 ・それぞれどの列にどの項目が入っているのか ・結果が気になる(想定と違う)部分が有れば参照セルの値 ・載せて下さった式は、どの列に入れた物か も一緒に御願いします。 (HANA) ---- HANAさん、こんばんわ またまた遅くなってしまいました。 ABC D E F G HIJ K L M N o P 購入年月日 部署 責任者名 受付a@金額 請求年月日 請求a@備考 支払科目 支払伝票No 金額 差額 2059 ○○ 原 AUCBWi2 ¥135,800 P0814000216 135800 Sheet1(購入リスト) 納品書NO 相手先コード 相手先名称 品名 金額 部署名 予算名 勘定科目名 支払伝票NO 計上日 69533 ○○ 図書購入費 10017 (教育)図書費 P0801000144 20080430 Sheet2(明細照会) 空のシートもデータ有のシートも同じ配列です。 そして、 ABC D E F G HIJ K L M N o P 2059 ○○○ 原 AUCBWi2 ¥135,800 その他 P0814000216 135800 20514 ××× 田中 PIAJQ ¥56,200 その他 FALSE FALSE -56200 ↑ データの入ったシートでの返り値です。 N列に=IF(COUNTIF(債務明細照会!$A$2:$A$147,F5),VLOOKUP(F5,債務明細照会!$A$2:$J$147,9,FALSE)) O列に=IF(COUNTIF(債務明細照会!$A$2:$A$147,F5),VLOOKUP(F5,債務明細照会!$A$2:$J$147,5,FALSE)) P列に=IF(O5=G5,"",O5-G5) 値がない場合、FALSEを返して、差額はFALSEを0と認識するのか、P列から、G列を引いた-56200と返していま す。 ところが、同じ配列で、空のシートですと、 20514 ○○○ 原 PIAJQ ¥56,200 その他 #N/A #N/A #N/A となります。 少し式が違うので、下記をご覧下さい。 N列に=VLOOKUP(F6,'債務明細照会 貼付用シート'!$A:$J,9,FALSE) O列に=VLOOKUP(F6,'債務明細照会 貼付用シート'!$A:$J,5,FALSE) P列に=IF(G6=O6,"",O6-G6) としたのです。 空のシートだと、IF(COUNTIFの式がどうしても作れなくて 何かがまずくて、間違っていますと、エラー表示になってしまうので、 単にVLOOKUPにしたのです。 該当のナンバーがない時#NAで返り、 そうしますと、差額を返すはずのIF文の戻り値が#NAのままになってしまうのです。 何故なのかがわからなくて、困っています。 HANAさんに考案して頂いた空のシートに貼り付けるというやり方は 最初とまどったのですが、 毎月毎月なので、あらかじめ用意しておいたシートに貼り付けて いく方が、ほんと便利だと思うのです。なぜなら毎月、データの量が 違いますから、細かい指定なしで列指定だけなら いちいち調整しなくていいですからね。 できたらこの教えて頂いたやり方でやっていきたいので、 本当に面倒な作業かと思われるのですが、 どうかご検証のほどお願い致します。 (JA2136 k-8) ---- えっと・・・まずは何処まで求めるかお伺いしておく方が良いのですかね? まず、 >同じ配列で、空のシートですと、 >少し式が違うので、下記をご覧下さい。 何故空のシートで式をかえてしまうのですか? ここに実際に使いたい式が入っていない と言う事は 「実際に使う際に、データを貼り付けた後、 実際に使う式に式を変更する必要がある」 と言う事だと思いますが、違いますか? 式の作成に移る前に、情報を整理させてください。 御提示のサンプルでは、 購入リスト [A,B,C] [D] [E] [F] [G] [H,I,J] [K] [L] [M] [N] [O] [P] [4] 購入 部署 責任者名 受付 金額 請求 請求 備考 支払科目 支払 金額 差額 年月日 年月日 伝票No [5] 2059 ○○○ 原 AUCBWi2 135800 その他 P0814000216 135800 [6] 20514 ××× 田中 PIAJQ 56200 その他 FALSE FALSE -56200 債務明細照会 [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [1] 納品書 相手先 相手先 品名 金額 部署名 予算名 勘定 支払 計上日 NO コード 名称 科目名 伝票NO [2] 69533 ○○ 図書購入費 10017 (教育)図書費 P0801000144 20080430 N5に =IF(COUNTIF(債務明細照会!$A$2:$A$147,F5),VLOOKUP(F5,債務明細照会!$A$2:$J$147,9,FALSE)) と言う事は、購入リストの受付Noを 債務明細照会の納品書NO とつき合わせるのですよね? でも、N5に表示されている「P0814000216」の納品書NOは「69533」ですよね? 受付Noは「AUCBWi2」ですよね? 何故これらが一致するのですか? (HANA) ---- HANAさん、ややこしくてごめんなさい。 人に説明するのは本当に難しい事ですね? 上記に例を引いた支払伝票NoP0811000216に対応する、明細照会の明細は下記のものです。 明細照会の例をコピーしようとして単に一番上にあったものをコピーしてしまいました。 ↓ A B C D E F G H I J 納品書NO 相手先コード 相手先名称 品名 金額 部署名 予算名 勘定科目名 債務管理NO 計上日 AUCBWi2 E+11 ○○○ NAS 135800 消耗品費 P0814000216 20080509 あと、空のシートでもデータ入りのと同じ式を作って入れたのですが、 どうしてもIF(COUNTIFが入らなくて、数式が間違っていますと、表示されるので仕方なく、 普通にVLOOKUPだけの式にしたら、入ったので、そのままにしておいたのです。 が、そのこと自体がちょっと変だなあと。 何故、空のシートだと、IF(COUNTIFの形の式で、列表示だけのものが作成できないのか? 原因が知りたいと思いますが類推できませんでしょうか? 何もかも頼り切ってしまっていて申し訳ございません。 何卒よろしくお願い致します。 (JA2136 K-8) ---- >人に説明するのは本当に難しい事ですね? 私もその様に思います。 しかも、ここには文字だけしか有りませんので、 ニュアンス等と言う物は、非常に伝わりにくいです。 今の段階では貴方と私で共通点も無いに等しい状態です。 実際に目の前で同じ問題を見ていれば 貴方が説明してくれる以外の事も 見て判断出来る可能性も有りますが この様な場所では、それもあまり期待出来ません。 ですから、「誰が見ても分かる」様に書いてもらわないと分かりません。 適当なデータを使われたのか、ご説明に間違いがあるのか 実は、見落とされている条件があるのか こちらでは判断が付きにくいですから。 >何もかも頼り切ってしまっていて と言う事で有れば、もう少し頼って頂きたいですが。^^ 先に私の考えを書いておきます。 私は、現在(JA2136 K-8)さんが作成して居られる式を 今回の物に当てはめてそのまま使うのは適当ではない と 思っています。 具体的には、例外処理をもっとたくさん入れておく必要が 有ると思っています。 ですから、 >もう一度、作業列をたくさん使って一つずつ考えてみましょう。 と言う提案をしております。 (JA2136 K-8)さんのご希望として ・今の式で充分である ・まずはこの式がうまく行かないのでなんとかしたい 等、現在の目的が『最終的に使用できる式を作成する』ではなく 『現在の式を使用して希望する物を作成する』に有る場合は、 以下をお読み下さい。 現在作成しようとしている物は ●該当個所にデータを貼り付けると、事前に埋め込まれている式によって 相違が簡単に分かるように表示されるシート ですよね? 間違えてはいけませんよ。 【データが入っている状態で】希望する結果が得られる式 が、該当個所に入っているシート が出来れば良い のです。 ですから、現在 > ↑ データの入ったシートでの返り値です。 の下にお書きの3つの式が出来ているのですよね? N:O列が「FALSE」と成っている時のP列の値が ご希望と違うのか、何と表示したいのか これでも良いのか・・・ 良く分かりませんが・・・・ とにかく、式は出来ています。 でしたら、シートはこのままで(複製しても良いですが・・・) 式中の A2:A147 や A2:J147 の様に、範囲で参照している部分を 列で指定するように変更します。 希望する値を返すので有れば、この式が参照しているシートの A2:J147のデータと、このシートのデータ部分A:M列のデータを Delete します。 Deleteした後に、このシートのN:P列の値が何を返していても 心配する必要はありません。 データを貼り付けると、希望する結果を返すのですから。 空のシートだから、「エラー値が返る」これはあり得ることです。 特に、COUNTIF関数を条件に使っている場合は・・・。 しかし、空のシートだから 「数式が間違っていますと、表示され 【セルに入力出来ない】」と言う事は無いと思います。 作成した式が、セルに入力出来ないなら 式に問題が有るのでしょう。 上の様に作成た式と、見比べてみると 何か分かるかもしれません。 (あくまでも「入力出来ない」場合 ですよ。) (HANA) ---- HANAさんまたまた遅くなりましてすみませんでした。 HANAさんの仰っている通り、提示させて頂いた式及びシートと項目の構成ではちょっと無理がありました。 私は、現在(JA2136 K-8)さんが作成して居られる式を 今回の物に当てはめてそのまま使うのは適当ではない と 思っています。 上司の意見を聞きましたところ、もうちょっと考えろ、との事でがっくりはきたのですが、 もう一度原点に返って、HANAさんご提案の多くの作業列を使用してちょとずつ整理して 何が必要かを突き詰める、という作業に没頭しておりまして、エライこと時間がかかってしまいました。 で、何とか下記のものを空シートで作成し、データを持ってきて見ましたら、何とかこんなものかな? というとこまで辿り着きましたので、見てくださいませんか? 途中の項目で不必要なものは省略しております。 ABC D F G O P Q R S 購入年月日 部署 受付a@金額 支払伝票No 照合 照合 照合(金額) 照合 2059 ○○○ AUCBWi2 ¥135,800 P0814000216 1 FALSE 135800 0 20514 ○○○ PIAJQ ¥56,200 #N/A 0 #N/A 0 -56200 O列の式:=IF(F5<>"",VLOOKUP(F5,'明細照会 貼付用シート1'!$A:$J,9,0),0) P列の式:=COUNTIF('明細照会 貼付用シート1'!A:J,F5) Q列の式:=OR(N5=TRUE,O5=TRUE) R列の式:=IF(NOT(O5=0),VLOOKUP(F5,'明細照会 貼付用シート1'!$A:$J,5,0),0) S列の式:=IF(NOT(Q5=G5),Q5-G5,0) O列で、受付Noが空欄かどうか見て空欄でなかったら、それに対応する支払い伝票Noを明細照会から取ってくる P列で、受付Noが明細照会の中で同じ物がいくつあるか数える(これでNo重複が防げる?) Q列で、HANAさんが書いてらした、OR関数です。 R列で、O列が0、つまりN列に該当Noが入らない場合0と表示する S列で、R列とG列の差額を求める ためしにデータ入れたらちゃんと引っ張ってきたのです。 今はちょっと疲れきってて、これでいいかどうかの判断ができないので、また 明日でも、追記します。 (JA2136 k-8) ---- HANAさん、遅くなってごめんなさい。 一応、自分的には、何とか求めるものに近いものはできたかとは想うのですが。 P列の式で、伝票Noが重複してる場合も、ちゃんとカウントしてくれました。 後、どういった状況を考慮しないといけないかは現時点ではちょっと、考え付かないのですが 何かありましたら、どうか教えて下さい。 式と項目の構成とかで、こうしたほうがいいのでは?とかいうところがありましたら またご教授願います。 (JA2136 k-8) ---- そうですね。 あとは、「どうなっているのが見やすいか」 って事じゃないでしょうか? 最終的に、 買ったと記録にある金額 と 売ったと請求された金額 を見比べたいのですよね? >伝票Noが重複してる場合 は、どの様な場合でしょうか? 例えば、 同じ伝票を二回入力している (片方のデータは間違いなので削除が必要) 同じ番号で、分割して入力している (最終的には、合計した金額が一致する) 前者で有れば、「伝票番号重複」と出るのが良いでしょうし 後者で有れば、それらを合計した金額が出るのが良いでしょう。 私でしたら最終的に見る場所には [F] [G] <1> <2> <3> [1] 受付No 金額 支払伝票No 金額 差分 [2] AUCBWi2 ¥135,800 P0814000216 ¥135,800 [3] PIAJQ ¥56,200 伝票無し [4] TCBIRA ¥156,150 Q0624300352 ¥156,150 50 この様に成っているのが見やすいのではと思います。 2行目は伝票があり、金額が一致 3行目は伝票がないので、「伝票無し」 4行目は、金額が不一致なので、その差分を表示 こうしておけば、たくさんの行の中から まずは <3>の列に着目して見れば良いですよね。 <3>の式を考えると 1.F列が空欄なら空欄 2.伝票番号が無い場合は「伝票無し」と表示 3. 有る場合で差額が無ければ空欄 4. 有る場合で差額が有れば 差額を表示 この様な式になります。 つまり、作業列として [AA] F列が空欄か? [AB] 伝票番号があるか? その後 [AC] 支払伝票Noを求める AA.がTREU AB.が0 なら「""」それ以外で VLOOKUP・・・ [AD] 支払伝票Noに対する金額を求める AC.が「""」なら「""」それ以外で VLOOKUP・・・ (重複が有った場合合計するなら、SUMIF関数です。) [AE] ここは<3>の式ですが、↑の作業列を使うなら AA.がTREU なら「""」 (AA.がTRUE で無い場合で) AB.が0 なら、「伝票番号無し」 (AA.がTRUE で無い場合でAB.が0でも無い場合で) AD.=G なら、「""」そうでないなら G-AD. AEの式は、IF関数のネストが深く成ります。 難しければ、一つの式ずつ考えてください。 [AF] AA.がTREU なら「""」そうでないなら「データ有り」 [AG] AB.が0 なら「伝票番号無し」そうでないなら「伝票番号有り」 [AH] AD.=G なら「""」そうでないなら G-AD. 一度3つの式を作って於いて、最後にAE.の形にするのは そんなに難しくないと思いますので、3つの式が出来ましたら こちらに載せて下さい。 (HANA) ---- HANAさんとてもとても遅くなってごめんなさい。 なかなか思うようにはかどらず、パソコンの調子も悪い事もあいまって、 というのを言い訳(?)にして、停滞しております。 途中まで作ったものをコピーしようとしたら、ファイルが開けれません。(汗) ちょっとエクセルの調子が悪いのか、他の全てのファイルが開けれなくなってます。 どうしよう? ワード文書なら開くのですが。 自宅のパソコンは少し古いので、時々気まぐれ起こします。 でもファイルそのものが開けれないのは今回初めてです。 すみません。 明日、職場からトライしてみます。 パソコンいかれてたらどうしよう? 何かこういう時って方法ってあるのでしょうか? 白っぽくなって何時まで待っても、開かないのです。 (JA2136 k-8) ---- あ〜、パソコンの不具合については分かりません。 申し訳ないです。 取りあえず私なら、電源を切ってそっとしておくかな。。。 「現実逃避」と言うのですかね。(笑) あと、レスはいつでも良いですよ。 急がずゆっくり 色々調子を整えながら やって下さいね。 (HANA) ---- 調子が悪くなったら(ならないうちがいいですが)、こまめにファイルのバックアップ を取るようにしましょう。 もし職場で開くことができたら、一度シート全体をコピーし、新規ファイルに貼り付け て保存するのも一つの方法です。 いずれにせよ、バックあアップは転ばぬ先の杖ですので、心がけられたらよいです。 (Mook) ---- MOOKさんご無沙汰致しております。 ご心配頂いてありがとうございます。 幸い、シートは職場で開けれたのですが、 肝心の式ができてません。 途中まで考えてはいたのですが。 HANAさんごめんなさい。 てこずってます。上司に途中経過を見せたところ、ごてごてしすぎ、自分で考えていないの 丸分かりという、指摘を受け、困ってしまいました。 重複については、金額の分割入力が主因で、ほぼそのケースのようです。 あまりない、ケース。 なので、求めることとして、先方からの請求額とこちらの買掛分をつきあわせて、 伝票Noを求め、金額の差額の有無、あと、全体の総合計があってるか、 また、レアなケースですが、よその部署の支払い分がこちらの名前で請求きてる のでその分はいくら探しても伝票Noは見つからない。ので、それは差し引いて、先方に 知らせる必要がある。 と、まあ、そういう具合で、伝票Noがあるかないかを一目でわかる必要があるほど、 そのケースは多発しないと。 とか何とか言って、やっぱりちょっと難しいのです。 私はまず、HANAさんのご提示のAA,AB,AC列を一緒にひとくくりで 式作ってしまったし。もし、受付NoがなければVLOOKUPで探しましょうと いう風にしてしまい、それをまず分解するのができないという具合です。 つまりそこからつまずいてしまったんです。 [AA] F列が空欄か? [AB] 伝票番号があるか? その後 [AC] 支払伝票Noを求める AA.がTREU AB.が0 なら「""」それ以外で VLOOKUP・・ これをひとくくりで、=IF(F5<>"",VLOOKUP(F5,'支払明細照会 貼付用シート1'!$A:$J,9,0),0) にしてしまったので、うーんどうしよう?なんです。 申し訳ないのですが、これをひとつひとつ、分解するってどうしたらいいのか ご教授お願いできませんでしょうか? スペースの関係上あまり列を増やすと入りきらないからと、思って、1つにしてしまったのですが、 いざそれをひとつひとつにしようと思ってもできなかった(汗) AAはIF(F5<>"",=F5,"")でいいかなと思ったのですが、ABがどうしよう? やっぱりIFそのものがイマイチわかってない?感じですね? もう一度ちょっと、あまり初心者すぎるとこまでで、申し訳ないのですが、 ご解説お願い致します。 あと、MOOKさんにお聞きしたいのですが、マクロって1つのブック内でのみ有効なんですよね? 明細照会をシステムからCSVで落としてきて、それには項目がたくさんあって、不要なものも多いので いちいち削除してVLOOKUPで探しやすいよう、加工するのですが、それが手間なので、 削除する段取りを全部マクロに記録しておいたら、次から、そのブック内に新たにシートを挿入して そこに落としていったら、自動的に削除して、加工してくれるかなあと思って昨晩マクロの記録とか いうものをやってみたのですが、保存できなかったのです。 そういうのは無理なんでしょうか? またまた超初心者でわかってなくてごめんなさい。 何卒よろしくお願い致します。 (JA2136 K-8) ---- もしマクロに興味があるなら、まずマクロの記録の方法は覚えたほうが良いです。 VBEのステップ実行や、ブレークの方法も判るといいですね。 この学校や、他のサイトにもVBA 入門のサイトは多くあるので、それらを参考に 記録を試してみてはどうでしょうか。 http://www.excel.studio-kazu.jp/lib/e4b/e4b.html http://www.excel.studio-kazu.jp/lib/e1nw/e1nw.html お仕事に使用するもののようですので、ある程度のマクロの知識がないままの 利用は両刃の剣だと思います。 不具合があったり、何か少し変更したいという時に、すぐに対処できないのは まずいですよね。 なので JA2136 K-8 さんにとっては、関数の方が良いかなと思い、今回の件は 傍観させていただいています。 ご質問への回答ですが、マクロは基本的にあるブックに所属していますが、他の ブックに対しても処理を行うことは可能です。 ただ、複数ブック、複数シートにまたがる処理をする場合、どれを対象にしているかを 常に意識する必要がありますので、マクロの書き方も多少複雑になります。 (Mook) ---- MOOKさん、ありがとうございます。 そうですね。訳わからずにいらない事して、データを壊したりしても大変ですし。 最もコピーをとったブックで試したのですが、しかし、自宅のはチョット古くていろいろトラブルが あったりするし、今回は上司の意見もあって、関数を使用してやってみてます。 が、勉強はしていきたいと思ってますので、また、何かの折にご助言お願い致します。 HANAさん、少し待って下さいね。 まだ、考え中です。 もう少し、待ってて下さい。 (jA2136 k-8) ---- マクロを覚えたいという気持ちは、応援しますので不明な点は遠慮なく お尋ねください。 ご本人にやる気さえあれば、私も含め多くの方が親切に教えてくれると思います。 逆に、「こんなの作って」とだけ言ってやる気のない方には、基本的には 私は遠慮させていただいています。 (例外はよっぽど興味があって、単に自己満足のためだけに回答する場合です。) 今回の件も完成するまで大変とは思いますが、ご自身で完成させることができれば、 大きな自信と力になると思いますよ。 頑張ってください。 (Mook) ---- あぁぁ・・・遅かったですね。 (先ほど、一生懸命書いてました。) 早い内に見て下さると良いのですが・・・。 駄目ですよ、途中経過なんて見せては。^^ 途中経過はごちゃごちゃするのです。 最後がすっきりすれば良いのです。 作業列を沢山使うのは、考えるために使います。 一番最後には、まとめられる所はまとめて仕舞えば良いですし ・・・・まとめると、式がそれだけ複雑になって仕舞いますので 今後の変更も考えると「有る程度」にとどめておくのが 良いでしょうけど・・・・。 まず、数式と結果状態を載せますね。 済みませんが、上で書いた作業列とは少し違う式なので (おおよそは同じなのですが・・・) 頭をリセットして見て下さい。 購入リスト(抜粋) [F] ・・・ [AA] [AB] [AC] [AD] [AE] [AF] [AG] [AH] [2] AUCBWi2 FALSE 1 P0801000144 135800 データ有り 伝票番号有り [3] PIAJQ FALSE 0 #N/A #N/A データ有り 伝票番号無し #N/A [4] TRUE 0 #N/A #N/A 伝票番号無し #N/A AA は、「F列が空欄か?」 なので =F2="" AB は「伝票番号があるか?」と書きましたが もう少し後で使えるように 数を数えて於きましょう。ここが「0」だったら 伝票番号が無い って事ですよね? =COUNTIF('支払明細照会 貼付用シート1'!A:A,F2) AC は「支払伝票Noを求める」 =VLOOKUP(F2,'支払明細照会 貼付用シート1'!$A:$J,9,0) AD は「支払伝票Noに対する金額を求める」 =VLOOKUP(F2,'支払明細照会 貼付用シート1'!$A:$J,5,0) AE は、ひとまず置いて於いて・・・・。 AF AA.がTREU なら「""」そうでないなら「データ有り」 =IF(AA2,"","データ有り") AG AB.が0 なら「伝票番号無し」そうでないなら「伝票番号有り」 =IF(AB2=0,"伝票番号無し","伝票番号有り") AH AD.=G なら「""」そうでないなら G-AD. =IF(AD2=G2,"",G2-AD2) こうやってみると まず[AA]が TRUE と成っている行は、データが無いのですから 無条件で「""」が返されれば良いですよね? →AF列で「""」を返す式を作りました。 これで、[4]行目のパターンの対応方法は決まりました。 次に、[2],[3]を見てみると ABが「0」の行(3行目)は、伝票番号が無い ので AE列には「伝票番号無し」と表示。 →AG列で「伝票番号無し」を返す式を作りました。 これで、[3]行目のパターンの対応方法も決まりましたね。 あとは「それ以外は、差額!!」としたいのですが 差が無かった場合0が表示されると煩わしいので もう一つ「金額がイコールか?」の確認の後 「""」を返すか 差額を出すか 決めるのが良いでしょう。 →AH列で「""」か「差額か」を判定し 返す式を作りました。 保留にしていたAE列を考える事にします。 まずは、AF列に入っている式を 数式バーからコピーして AE列に貼り付けてください。 AF列に入れた式が『データ有り』と成ったとき =IF(AA2,"","データ有り") ‾‾‾‾‾‾‾‾‾‾‾‾結果がこっちに成ったとき 更に条件が分かれますが その内の1つが AG列に入れた AB.が0 なら「伝票番号無し」なので この部分と置き換えます =IF(AA2,"",IF(AB2=0,"伝票番号無し","伝票番号有り")) ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾この部分ですよ。 さらに置き換えた部分で『伝票番号有り』と成った時は まだ、条件が分かれて 「""」か「差額」表示(AHの式)ですので やはりその部分と置き換えます。 =IF(AA2,"",IF(AB2=0,"伝票番号無し",IF(AD2=G2,"",G2-AD2))) これで、AE列の式が出来たことになりますが・・・。 私もなかなか時間がとれなくて ごめんなさいね。 (HANA) ---- HANAさん、随分宿題が随分遅れてまして、ごめんなさい。 途中まで作ってはいるのですが、まだです。ひえーん。 ただ、ちょっと、支払明細の方で、月毎の集計出したくて SUMIFで月毎集計しようとしたら、出来ないので困ってます。 納品書NO 品名 金額 ○○○ ○○○ 勘定科目名 支払伝票NO 計上日 月毎合計 160105 ソフトウェア 16550 ××× ×××補助 P0814000029 20080402 0 0の部分に=SUMIF(J2:J26,"4/*",E2:E26)と入れたのに 0しか返ってこないのです。 セルの表示形式を見て見たら文字列になってたので 日付に変えたら#####となるのです。 でセルの幅を広げても解決しない。 ひょっとしてCSVファイルである事が問題なのでしょうか? 宿題できてないのに、ヘルプをお願いしてごめんなさい。 何とか満足の行くものを作成して上司に ちょっと交渉したい事もあって。 とにかく必死です。お願いします。 宿題はIFのネストのすごいのがまだできてないんで、 もうちょっと待って下さい。 (JA2136 K-8) ---- 照合する物は、出来ているのですよね? でしたら、現在のものは 余談 の部分なので 急がなくても良いと思いますよ。 現在の問題については、 >セルの表示形式を見て見たら文字列になってたので と言う事ですが、数式バーにはどの様に表示されていますか? また、J2:J26の範囲には 4月以外のデータも有るのですか? それから >=SUMIF(J2:J26,"4/*",E2:E26) これは、何の合計をしたいのでしょう? J2:J26の中に1月〜12月までの日付が入っていて その内4月の物だけのE2:E26の合計を出したいのですか? それとも、御提示のサンプルでは有る一つのデータの行に 入れているようですが、 ○○(納品番号,品名等)の4月の物だけのE2:E26の合計 を出したいのでしょうか? そうそう >宿題はIFのネストのすごいのがまだできてないんで、 AE列の事ですかね? これでしたら、お気になさらずに これ以外の列の式を作って載せて下さいね。 ・・・って言っても、セル番地が合っているなら 式は載せてるんですけどね・・・。 (HANA) ---- HANAさん、見て下さってたのね、ほっ! 数式バーにはそのまんま、20080402と表示されてます。 J2〜J26まで4月分の納品書No、品名、金額、購入部署が入っており、 その金額の合計を、先に提示した、購入リストと照合し、集計表に落としたいのです。 J27から下には、5月分のデータが入っており、最初、オートフィルターで、4月分なら4月分、 5月分なら、5月分の総計を出して飛ばしてたのですが、それだとフィルターを解除したら、番地が 変わってしまい、なので、もう1枚シートを余分に作ったら、それをこの間、上司に途中経過見せた 時に、1枚のシートで、したらどうかと言われてしまって困ってしまったのです。 で、SUMIFで集計して、それを集計表に飛ばそうとしたら、全然動いてくれなかったんです。 ああ、自分で1からこういった表を作成するとなると、なかなか骨が折れますね。 今までは、誰かの作ってくれたありものの表に入力していって、ちょっと加工したり、 くらいしかしたことがなくて、それで、まあ、この程度のエクセルの知識でも何とか仕事は 出来ていたのですが、そろそろ、そういったものも作って見なさいと、言われ、いざってなると こんな大変とは思いませんでしたね。 でもだからこそ勉強になるんですよね?力もついてくるんですよね? そう思って頑張ってるんです。 HANAさんを始めとする、強力な助っ人がいてくれるから、何とかなってるんですが。(笑) いや実は上司に言わせるとまだ、他人任せというか、ここで、皆さんに助けてもらって それに頼り切ってるって痛いトコつかれてしまったのですけど。 それでも歩みは遅いけど、進歩はしてますよ。 とにかく、上記のような理由なので、どうかお助けくださいませ。 (JA2136 K-8) ---- >その金額の合計 と言うのは「どの」合計ですか? 「4月」を表す行の合計が出れば良いのですか? 例えば [A] [B] [C] [D] [E] [1] 日付 金額 集計 合計 [2] 20080402 10 4月 40 [3] 20080402 10 5月 80 [4] 20080430 10 [5] 20080430 10 [6] 20080502 20 [7] 20080502 20 [8] 20080530 20 [9] 20080530 20 E列の様な。 でもこれだと >購入リストと照合 してないですよね・・・・? (HANA) ---- HANAさんこんにちわ。 何とか解決はつきました。 購入リストとは購入リストの方で照合してますが、これは、購入リストに漏れている(?) ものを判別する為に必要なのです。 つまりこちら支払処理をしているが、先方は請求してきていない、ものを 見つけるためにこちらのシートでも総計を出して、合計額を購入リストと突き合わせる。 だんだん仕上がりに近づいては来ています。(一体いつまでかかってるんだ?) ちなみに上記の解決はMID関数を使って、20080402の04の部分を隣の列に抽出、 04、05と月数を抽出し、それをSUMIF関数で総計して、購入リストと、集計表に飛ばしました。 後は、IF関数の使い方ですね。ただ、HANAさんがご提示下さったくらいまでの 丁寧な判別が必要にはならないとは思うのですが。 レコードの重複は殆どなく、未請求か未払いか、他部署からの支払分か・・・・。 でも、まだ、私も本件に関して、手がけて3ヶ月にもなっていないので、 不確定要素がどれくらい出るか未知数です。 ともあれ、空のシートを用意して、そこに計算式を入れて・・・という ところから、丁寧にご指導頂きまして本当にありがとうございます。 MOOKさん、gon2さん、×××さんも本当にありがとうございました。 完成はまだですが、先にとにかくお礼だけ言わせて下さいね。 (JA2136 K-8) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/200805/20080529000012.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97040 documents and 608197 words.

訪問者:カウンタValid HTML 4.01 Transitional