「重箱の中へ。(エクセル関数あつかい)」     

 重箱の中へ。(エクセル関数あつかい)


このぺーじにあるものども。

◆参照範囲指定をラクにしたいとき〜超ズレないRANK関数
 (MATCHとINDEX書式2のあわせワザをRANK関数にて使う実例)


◆空白文字列(だけ!)のかぞえかた。
 (COUNTIFの条件設定徹底比較?)


コラム◇空白なのにそうでもない?
 (ユーズドセルの記録が間違っててジャマな場合の消し方。)


◆速報・dateは0やマイナス指定ができる!!

コラム◇テーブルタグを手打ちしたくないときは
 (ブラウザでプレビューでHTMLトランスレート!)




 →→→トップページへお戻りの際はブラウザバックでお願いしますm(__)m



メルフォ再開いたしました! メール下さるさいはここをぽちっとお願いします。



◆参照範囲指定をラクにしたいとき〜超ズレないRANK関数
 (MATCHとINDEX書式2のあわせワザをRANK関数にて使う実例)

●コンセプトをヒトコトでいうなら:
どーせタイトルに含まれてるんだから、エクセルにさがしてもらっちゃえ。

●コレのすごいところは:
・スコア列ランク列を入れ替えようが、参照が狂わない
・ランク列の項目タイトルを打ちかえるだけでも位置入れ替えができてしまう
 一度組んでしまえばとんでもなくフレキシブルです。
(ヨコ方向には。項目タイトル列などを上下にずらした場合の動作は保証できません(汗))


●RANK関数つかってて起きるトラブル一覧(やや脚色した実例。)
中間テストの順位発表準備と考えてくださいまし。
「国語と算数と英語の成績を、おのおのの点数でランキングか。
国語(点数)と算数と英語のよこに…
国語ランクと算数ランクと英語ランクの3列作ってもらってあるから、ここにそれぞれランク関数入れて…
え? やっぱり理科社会その他も入れてくれ? 仕方ないなあ間に列入れたよ…
あっRANK関数の参照範囲指定“だけ”がずれてる!!
え? 算数と英語のランク表示は順番入れ替えてほしい?
なに? やっぱ理科社会要らない? ランク表示の順番はちょっと流動的?!
だー作業にならないよ!!
ってかそのたび手作業で指定かよ…(泣)
あーもう、せめてRANK関数の参照範囲だけでも自動検出できたら!!」

しかしココで朗報。ランキング範囲自動検出はできます!
ついでにランキング対象も自動検出できます!
(正確には「ほぼ自動」ですが…)


●ずばり方法。
国語の成績ランキングを例にとります。

最初はこんな状態。
(A列は名前なんで割愛。)

  B  C   D
1 算数 国語 国語ランク 
2 100 200        
3 200 300        
4 400 100        

まず補助行用に一行入れます

  B  C   D
1 算数 国語 国語ランク 
2             
3 100 200        
4 200 300        
5 400 100        

項目タイトル「国語ランク」の真下、D2にこう入れます

=MATCH(LEFT(D$1,2),$1:$1,0)

(あばうとな逐語邦訳:
指定データの位置を数字で下さい(
指定データはD$1の左2モジ(ここでは国語、となる),
データを探す範囲は一行目,
どういう順番でデータ入ってるかちょっと断言できませんけど、そのものずばりのデータがみつからなかったらデータ位置はエラーでいいですよん。ずばりの場合だけ下さい)


するとこんなんでます

  B  C   D
1 算数 国語 国語ランク
2        3     
「国語」は、三番目の列(ABCっでC列ですな)にはいってるよ〜ということです。
さてこれが分かればアトは一気呵成です。
D3にこう入れます

=RANK(INDIRECT(ADDRESS(ROW(),D$2,4)),INDEX($A:$C,0,D$2,1),0)

ほぼ逐語訳
ランク出してください(
この数は指定範囲の中でどのへんのランクでしょ
(「この数」のはいってるとこは参照で言うならば『「この行」の、「“D$2にはいってる数”番目の列」…ちなみに、コレ相対参照でたのんます(※1)』),
指定範囲はココです
(AからC列のなかの、行指定なし(※2)、「“D$2にはいってる数”番目の列」、一個目の領域ス),
ランキング順序は「一番高得点が一位☆」って順番で。)

(※1 相対参照にしてほしいのはコピペが楽そうだから。よく考えるとコレでなくてもよかったかも…?)
(※2 つまり「行の限定はなし」=「列まるまるひとつ」ということになる。
この例では、三番目の列まるまる=C:C、という参照が指定範囲としてでてくる)


モンダイの部分をずーむするとこんな風にでてます。

  B  C   D
1 算数 国語 国語ランク
2       3
3 100 200  2

正しいようだから、下にコピペしたり算数ランクぶんなんかも作ったりすると、あっというまにこんなカンジに。

  B  C   D       E
1 算数 国語 国語ランク 算数ランク
2       3      2
3 100 200  2      3
4 200 300  1      2
5 400 100  3      1



…正直、ゴキゲンな出来です。
コピペしてタイトル(〜ランク、の〜の部分)うちかえるだけで増産らくらく。
入れ替えは切り張りでもタイトル打ちかえでも可能。
しかもスコア列ランク列ともです。
つまり、ヨコ方向なら増産削除入れ替え自在!
レイアウト変更? どんと来いってなものです。

ただしタテ方向の変更…つまりタイトル列を上下にずらした場合にはおそらくズレます。そのさいは「一列目〜」という指定のところを手直ししてくださいませ。


●応用
「国語」じゃなくて「国語点数」だと、このままの式では出ません…
その場合は、項目タイトル「国語ランク」の真下、D2をこう直します

=MATCH(LEFT(D$1,2)&"*",$1:$1,0)

これで、前方一致検索で探すようになってくれます!
MATCHの検索対象指定にはワイルドカードが使えるのです。
この部分、うまく作ればもっと複雑なタイトル条件でも検索できます♪



◆空白文字列(だけ!)のかぞえかた。
 (COUNTIFの条件設定徹底比較?)

●やっぱしお猫さま萌えな、しかもフィクションのクセに生々しい、でもってたぶん読み飛ばして大丈夫な事例。(爆)
にゃんこ向けグッズ配布準備とおもってくださいまし。
事例はもちろん架空です。

「今年の応募者全員プレゼントは猫缶引換券に加えて長毛種ちゃん…シャンプー、短毛種ちゃん…ブラシ、無毛ちゃんはお洋服です。集計表だけたのんます(あとは別の人ね)」
というわけで発送・受け取りチェックリストを作った。
とりあえずにゃんこ名と毛並み区分が入ってて…
毛並み見てにゃんこ別に、発送不要なグッズのところには「不要」、必要なもののトコは""が出るようになってる(あとから発送報告書確認日付いれるから。と、わかりやすいから。使うのはおなじみIF式)。
こんなふうに。


   A   B   C     D   E   F
1 名前   毛   受付日 シャンプー ブラシ 服
2 三毛原  長   12/3        不要  不要
3 縞斑   短   12/3   不要       不要
4 鯖山   長   12/3        不要  不要
5 白足袋  短        不要       不要
6 赤虎   無   12/3   不要   不要
7 黒斑   短        不要       不要
...


さて、今日のしめきり時間が来て、今日受け付けのリストを発送セクションに引き渡すことになりました。
オートフィルタで今日の分だけコピペたのをメール。
したら帰ってきたメールが。
「マクロで発送書類うちだし機構作るようにしたいから〜グッズべつの数も表示ほしいんだけど〜」
ここでそいつと極端に仲よくない場合、そのくらい自分でやれよ表いってんだからと自分を棚に上げてココロの中でつっこんだりしますが(みょーに生々しいけどフィクション。それはホント。)…
実はコレ、オートフィルタ使わないで数えようとするとかなり面倒なシロモノだったりするのです。


●やっと本題部分。
リスト中の空白文字列(""っての。)をcount系で数えようとすると、実は一筋縄ではいかず厄介です。
B列に対象データが入ってるとして…
countblankで=COUNTIF(B:B)のように一列指定すると、リストの外の空白まで数えられてしまう。
(リスト範囲を毎度手動で指定するのは面倒すぎなので却下です(爆))
しかし、=COUNTIF(B:B,"=""")のようにすると、今度は何も引っかからない。

かといって=COUNTIF(B:B,"")でもやっぱり、リスト外の空白まで数えられてしまうのでもとのもくあみです。

そんなときにはこれで。
=COUNTA(B:B)-COUNTIF(B1,">""")-COUNTIF(B1,">"&MIN(B:B)-1)

すごくアバウトに解説すると、
B列で、なんぞはいっとるセルの数。。
まいなす
B列で、""よりは大きなヤツ(文字列。)はいってるセルの数。
まいなす
B列で、「最小値以上のやつ(数。)」はいってるセルの数。


これで、空白文字列はいったセルだけがかぞえられます。
ほんとうの空白セルと混同しません。
それはたとえ、別表に値コピペして、""すら出てこない状態になってても、です。
エクセルは空白文字列とそうでないホントの空白を、たとえそうはみえなくてもがっちり区分してくれてるようです。


●てか、なんでこんな事態になったの??
必要のとこに空白を入れるのには、実は理由があります。
数えるのが面倒というまえにそもそも、必要のとこに空白なんぞ使わずに、「必要」いれてりゃーよかっただけのハナシともこれはいえます。
しかし、プリントアウトしたものを書き込みチェック表として使いたいときは、マスがしろくあいてないと困るのです。
それのためだけに、コンバート用のシートや条件付書式つくるのも面倒だし。
何よりぱっと見、分かりやすいです(笑)


●空白の効果。
必要なもののところを空白にするのには、意外な効果もあります。
そのひとつが、データ事故のさいのダメージコントロール効果。
もしもこれとは逆に、不要のところを空白にしておいた場合…
「式を入れはぐってたから空白になってただけで、ホントは発送が必要だった(滝汗)」という事態が起こりうるのです。
せっかくキャンペーンに申し込んだのに楽しみにしてたプレゼントがこないと、最悪そのお客さんは(お友達と一緒に)黙って離れていってしまいます。
逆にかなり不幸なケースを除いて、全プレが申し込んでないのに届いたところで喜ばれるだけですから(笑)

もうひとつはデータの保守の補助効果。
エクセルである以上、「うわ間違えてセル内容消しちゃった…」ということはあります。
そしてそれに気づかないことも。
かといって、内容がちゃんとはいっているか、いちいちカーソル動かしてチェックするのもまた、労多くして…な作業です。
COUNT系を使ってつねにデータの総計を数えさせておき、ときどきオートフィルタ&選択を使って数えたのと照合すれば、そのチェックはらくです。
例の式では、空白と空白文字列は数え分けてくれるのです。
オートフィルタで出した(空白セル)の数が、式で数えた空白文字列セルの数より多ければ、その列のどこかでセル内容が消えてしまっているので要チェック。おんなじなら速攻OKということになります。

気をつけることでは事故は防げません。
それゆえ『一段目の事故はたとえ起きても、小さなダメージですむようなしくみにすること』それが現実的な対処です。
もちろん事故はつねに手をつくして避けるべきですが、まったく起きないということは対象者数が一定以上になるとまず確実にありえません(ないと思っているのは申し込んだのにこなかったヒトが黙ってるからです)。


●で、ちっぷす。
「式が一部間違ってた…今回は時間ないし直に、切り出し後の表に「必要」いれたい! でもデリートで「不要」消しても必要が加算されません! 何とかしてくださいっ」
この場合は、そこに空白文字列入れます。具体的には=""って入力すればOK。空白文字列として数えてもらえます。

「今度は逆のケースで…」
その場合はそこに「不要」でOKです。



コラム◇空白なのにそうでもない?
 (ユーズドセルの記録が間違っててジャマな場合の消し方。)

●ぽいんと:邪魔者は残さず消せ。(怖)

●モンダイの事態。
ご存知の通り、Ctrl+Endで「リストのいちばんうしろのセル」に飛べます。
しかし…
ときどき、「自分的にはそうでない場所」に飛ばされることもあります。
一行下だったり、一列右だったり、もとの記録が見えないくらいの僻地だったり(汗)
「毎月の記録表だから、月末にそれまでのデータを『いままで表』に移動しました〜」とか…
「発注商品レコード入れたんだけど取り消しになりました。削除しました☆」という操作の後にこの事件は発生します。
おかしいなと思って、ズレてるぶんの行や列を削除してみても、やっぱり「変な」位置に飛ばされる現象は直りません…
かつてるきあも、思い余ってリスト部分だけを新しいシートにコピペしたりもしましたが、またそのうち同じようになってしまって参っていました。

●コレを直すには。
が実はこれ、意外と単純な方法で直ります。
ズレてるぶんの行や列だけでなく…
リストではない、要らない空白部分すべてを、シートの端っこまで削除するのです。
行方向、列方向ともです。
その後リスト内にカーソルを持ってきて(←これは念のため。しなくてもいいのかもしれませんが…)、その状態で上書き保存すると、ぶじ「自分的にラストの」セルにCtrl+Endで跳べるようになります。
もしこれでもだめなようでしたら、削除につづいて、そのままの状態でオールクリアもかけてください(つまりセル削除したらどこもクリックしないまま、プルダウンメニューで『編集-クリア-すべて』をする。もちその後上書き保存。)
ここまですると、確実に直るはずです。

●コレのおこるからくり。
エクセルには「ユーズドセル」というガイネンがあります。
「このセルは使われたか使われてないか」をエクセルは覚えているのです。
この判断基準はなんかフクザツで…
現在なかに文字が入っているかではなく、かつては入れられたことがあるかどうかもあり、くわえてセルなどの削除や挿入をしただけで、ユーズドセルとみなされてしまったりもします
(前述の、「空白文字列(だけ!)」を数えようとしたときに、コレに泣かされました…)
この記録は、当然デリートや削除や挿入では消えません。
しかし、そこからシートの右端or下端まで一気に削除、クリアすると消せるようなのです。
おためしあれです。



◆速報・DATEは0やマイナス指定ができる!!

=DATE(年,月,日)というカタチでつかう関数。
日付のシリアル値を返してくれるもの。

これは意外とフレキシブルなところがあって、
=DATE(2007,14,1)
なんてすると、2008/2/1にあたるシリアル値を返してくれます。
(EXCEL2003のヘルプに記載あり。)
じっさいのとこ、コレだけをセルに入れると、2008/2/1と出てくれます。



しかしこんなことまでできるとは今日はじめて知りました。

=DATE(2007,2,0)

こうすると、セルには2007/1/31と出ます!
それまで、月末の日付を出したいときは、わざわざ次月の1日から1ひいてたのですが…いやはや便利。


しかもこの調子で、マイナスも指定できるのです。

=DATE(2007,2,-1)

こうすると、セルには2007/1/30と出ます。


便利すぎナリ。
以上速報でした。



コラム◇テーブルタグを手打ちしたくないときは
 (ブラウザでプレビューでHTMLトランスレート!)

HTMLタグを手打ちしている方は根強くいらっしゃるそうです。
ツールでやるといらん記号まで入るのでイヤ、というこだわりの方から、ワタシのようにツールがない(ワタシは選ぶのがめんどうになってそのままw)という方まで。

われわれ手打ち族の悩みの種のひとつは、テーブルタグだと思われます。
ぶっちゃけ、作り始めのころにみてめんどくささに習得を諦めました(爆)
しかし作り始めて気づくこと。
やっぱり便利なのですテーブル。
というより…
ゲーム系ですとアイテムやイベントリストが必要になりますが(たぶん)、これはどうにもテーブル系でないと見やすく表示しづらいのです。

しかしいくつものセルに対し手打ちでテーブルタグ入れることを考えると、控えめに言ってうんざりします。
ていうか、はっきりいって「したくない」です。
そんなアナタとワタシにこの方法です!

・エクセルでリストを作ります。
 もし入力が面倒なカンジなら、タブやカンマ、スペースなどの区切り記号つきテキストにつくっておいて「ファイルを開」いたり、コピペでもいいです。

・整形します――ブラウザで見せたいイメージに忠実に!
罫線、書式、高さや幅など、この時点でプレビューを繰り返し、納得の行くものにしてください。このままが表示されるようになります。
出来上がったら念のためいったん保存します。
もし微調整が必要だったりした場合ここからのほうがやりやすいと思われますため。

・エクセルにトランスレートさせます
エクセルのプルダウンメニュー、ファイル−「ブラウザでプレビュー」 します。
ブラウザが開いて、表示されます。
見た感じこれでよければ、ブラウザのプルダウンメニュー、表示−ソースを表示 します。
するとメモ帳が開き、なにやらいっぱい書き出されてきます…
これが目的のモノ、へてむるトランスレートされたリストちゃんです!!
メモ帳のプルダウンメニューからファイル−名前をつけて保存を選び、お望みの場所、お望みの名前にて保存。
あとは、この文書をふつーのへてむる文書として取り扱ってくださればOKです。


決定的な弱点は、エクセルがないと出来ないことですが(爆)
へてむる文書として出せるので、エクセルがない方にもご覧いただけるように出来るという利点は大きいと思われます。
手打ちしないですむし(笑)






 →→→トップページへお戻りの際はブラウザバックでお願いしますm(__)m   
専門学校情報が満載♪ 低金利でお得なローン探し 給料前でお金がない・・
[PR] | 自動車保険監視カメラ消費者金融スピリチュアル八王子調布三郷久喜中国SEO対策消費者金融車 買取テンプレート沖縄旅行免許合宿二輪引越しプレゼントゴルフ会員権留学レーシックマッサージFXアフィリエイトFXホームページ制作デイトレードハワイ旅行タイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島Hawaii hotelsHawaii Activitiesbhhrハワイホテルテキスト広告
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行 - タイムシェア - ホテル 予約
無料ホームページ - 携帯ホームページ - 無料ホームページ作成 - レンタルサーバー - ブログ - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - プーケット ホテル - レピュテーション・マネジメント・ツール - ハワイ ブログ - Timesell - 国際通話 - ホノルルマラソン - サイト監視 - 風評被害 - ホテル比較 - Delta - ホテル予約