advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 1385 for ������������ #N/A (0.016 sec.)
[[20121008174144]]
#score: 6930
@digest: 20e784bf507fbb7440ad342d8a71c17a
@id: 60411
@mdate: 2012-10-21T07:29:58Z
@size: 28460
@type: text/plain
#keywords: zamasu (86960), dicjy (66427), 1976 (49218), 1977 (35675), (za (30911), 店名 (18287), 度毎 (16777), 色赤 (16558), 支店 (15105), 性別 (14672), 生年 (13296), 女性 (10050), 灰色 (9555), 年度 (8401), 字色 (5537), 元デ (4378), パタ (4195), 月日 (4150), 年月 (4040), ーン (3193), 振り (3061), り分 (3018), 件付 (2984), の人 (2721), 条件 (2686), 特定 (2577), sheet1 (2429), 一覧 (2247), indirect (2236), ルコ (2183), sheet (2051), 名前 (1855)
『誕生日から年ごとに表示させる』(zamasu)
たとえばA1に名前を、B1に生年月日を入力し、ほかの場所に年ごとに名前を振り分けるにはどうしたらいいでしょうか? Excel2003 ---- 1行目に項目名を入力後、C列に年情報を算出して、それを基準に並べ替え。 ※他の場所とはどこで、どう云うレイアウトで出力するか分からないので、そっちは具体案なし。 行 ___A___ ____B____ __C__ 1 氏名 生年月日 年 2 zamasu 2012/10/8 2012 ← =YEAR(B2) (半平太) 2012/10/08 18:48 ---- ありがとうございます。 出力の方は別シートに表示させたいです。 A B C 1 s50 名前 同年生名前 2 s51 名前 3 s52 4 s53 5 s54 このような表を作りたいのですがどうしたらよろしいでしょうか? よろしくお願い致します。 ---- 関数ではどうなんだろうね。 エキスパートさんなら、なんとでもなるのかな?当方素人なので、とりあえずVBA。 C列には自分自身も含まれる。 Sub Sample() Dim dicJY As Object Dim dicLS As Object Dim c As Range Dim jy As String Dim w As Variant Dim dKey As Variant Set dicJY = CreateObject("Scripting.Dictionary") Set dicLS = CreateObject("Scripting.Dictionary") With Sheets("Sheet1") For Each c In .Range("A2", .Range("A" & .Rows.Count).End(xlUp)) '1行目からデータなら A1 に。 jy = Format(c.Offset(, 1).Value, "ge") If Not dicJY.exists(jy) Then dicJY(jy) = Array(c.Value) Else w = dicJY(jy) ReDim Preserve w(LBound(w) To UBound(w) + 1) w(UBound(w)) = c.Value dicJY(jy) = w End If Next For Each c In .Range("A2", .Range("A" & .Rows.Count).End(xlUp)) jy = Format(c.Offset(, 1).Value, "ge") dKey = jy & vbTab & c.Value dicLS(dKey) = Array(jy, c.Value, Join(dicJY(jy))) Next End With With Sheets("Sheet2") .Cells.ClearContents .Range("A1").Resize(dicLS.Count, 3).Value = _ WorksheetFunction.Transpose(WorksheetFunction.Transpose(dicLS.items)) .Columns("C").AutoFit .Select End With MsgBox "転記完了" End Sub (ぶらっと) ---- ↑ B列に 名前 とあったので登場する人をすべて表示してるけど、もしかしたら 年 で 1行? そうだとすると、B列の名前は何なんだろう。代表? (ぶらっと) ---- すいません。 VBAやったことがないんですが、どのようにして作ればいいですか? 本当にすいません (zamasu) ---- 一応、数式案は下記ですが、これ以上の対応は考えていないので VBA(または他の数式案)でいけるなら、そちらを採用してください。 <Sheet1> 上述手順で並べ替えた後の状況サンプル 行 __A__ ____B____ ___C___ 1 氏名 生年月日 西暦年 2 A 1976/2/5 1976 3 B 1976/1/1 1976 4 C 1976/1/1 1976 5 D 1976/1/1 1976 6 E 1977/3/9 1977 7 F 1977/1/1 1977 8 G 1977/1/1 1977 9 H 1978/1/1 1978 10 I 1979/1/1 1979 <Sheet2>にセルの書式(表示形式)を設定して該当ないセルに空白表示の準備をする A列をユーザー定義で→ 0;;; C列をユーザー定義で→ [>1]GE;;; <Sheet2に入力する数式> (1) A2セル =COUNTIF(Sheet1!C:C,YEAR(B2)) 下にフィルコピー (2) B2セル =DATE(INDEX(Sheet1!C:C,SUM(A$1:A1)+2),1,1) 下にフィルコピー (3) C2セル =IF($A2<COLUMN()-2,"",INDEX(Sheet1!$A:$A,COLUMN()-1+SUM($A$1:$A1))) 右へ、下へフィルコピー <結果図> 行 ___A___ __B__ _C_ _D_ _E_ _F_ 1 該当数 元号 2 4 S51 A B C D 3 3 S52 E F G 4 1 S53 H 5 1 S54 I 6 (半平太) 2012/10/09 10:42 ---- >VBAやったことがないんですが、どのようにして作ればいいですか? (zamasu)さんのこれからの運用を考えるとなんとなく、数式で対処したほうがいいとおもうんだけど 一応、コードをアップしたので。 ・エクセル画面で Alt/F11 で VBE画面を呼び出す ・メニューの 挿入(I) -> 標準モジュール(M) ・これででてきたところに、アップしたコードをそのままコピペ ・VBE画面の右上のXボタンをおしてエクセル画面に戻る。 これでマクロ記述が完了。 これを動かすには ・ツール -> マクロ -> マクロ ででてくるボックスの中の Sampleを選んで実行ボタン ・あるいは、このボックスで、Sampleを選んで、オプション(O) --> ショートカットキー(k) に任意の半角アルファベットを指定してOK (たとえば z) こうしたうえで、エクセル上で、 Ctrl/z とやれば動く ・あるいは、シートにシェープやボタンを貼り付け、それに、この Sample をマクロ登録しておけば そのシェープやボタンをクリックすると動く。 (ぶらっと) ---- 半平太さんありがとうございました。 何とか出来ました。 もう一つ応用なんですが年度毎で振り分けるには、 =DATE(INDEX(Sheet1!C:C,SUM(A$1:A1)+2),1,1) ↓ ,4,1 このように変えたらいいでしょうか? ---- ぶらっとさんその初歩的な質問で申し訳ないんですがそのVBAはシートとかは関係あるのでしょうか? すいません。 (zamasu) ---- >もう一つ応用なんですが年度毎で振り分けるには、 年度ごとに振り分けた心算でいるのですが、 レイアウトが変わったということなのでしょうか? でしたら、上述の通り、これ以上の対応は考えておりませんので、 VBA(または他の数式案)でいけるなら、そちらをご採用ください。 VBAなら柔軟に処理できます。 (半平太) 2012/10/09 11:49 ---- ありがとうございました。 (zamasu) ---- >年度ごとに振り分けた心算でいるのですが、 たぶん、年毎と年度毎 の違いじゃないでしょうか? ‾‾ どの期間が何年度にあたるのか、説明があっても良いとは思いますが。 ,1,1→,4,1 と言う説明なので、4月1日〜っぽい感じはしますが。 (HANA) ---- >>年度ごとに振り分けた心算でいるのですが、 > たぶん、年毎と年度毎 の違いじゃないでしょうか? > ‾‾ > どの期間が何年度にあたるのか、説明があっても良いとは思いますが。 > ,1,1→,4,1 と言う説明なので、4月1日〜っぽい感じはしますが なるほどです。 これっきり、のつもりでやっていましたので 「4.1」が何のことか全然頭に入らなかったです。すみません。 m(__)m しかし、生年月日と云うと、学齢に関係するかも知れないですね。 そうなると早生まれの人のことを考える必要があるかも知れない。 うーん、そう云うごちゃごちゃしたことを聞き出すのは(最近)苦手に なって来ていまして・・・やっぱり、私は降ります。 (半平太) 2012/10/09 15:19 ---- 横からすみません。 生年月日の年度の境目は4/2〜です。 4/1生まれの人は前年度の扱いになりますので、ご注意ください。 (コナミ) ---- いろいろすいません。 何年生まれの振り分け表、学年毎の振り分け表 この二種類何ですけど。 生年月日から1.1〜12.31の人を振り分けた表 生年月日から4.2〜4.1の人を振り分けた表 お手数おかけしてすみません。 ---- >ぶらっとさんその初歩的な質問で申し訳ないんですがそのVBAはシートとかは関係あるのでしょうか? 質問のポイントがわからないけど、このコードが前提にしているのは、元シートのシート名が"Sheet1" 転記シートのシート名が"Sheet2"。 実行時は、どのシートが表示されている状態でもOK。 (ぶらっと) ---- みなさんとのやりとりから、(zamasu)さんがこれから運用していく上で、VBA利用は、「相当覚悟」が必要だと思うけど・・・ 一応、処理1 が 1/1〜12/31。処理2 が 4/2〜4/1。 Sub 処理1() '1/1 〜 12/31 Call 振り分け(True) End Sub Sub 処理2() '4/2 〜 4/1 Call 振り分け(False) End Sub Private Sub 振り分け(period As Boolean) 'preriod true 1/1 〜 12/31 ' 4/2 〜 4/1 Dim dicJY As Object Dim dicLS As Object Dim c As Range Dim jy As String Dim w As Variant Dim dKey As Variant Set dicJY = CreateObject("Scripting.Dictionary") Set dicLS = CreateObject("Scripting.Dictionary") With Sheets("Sheet1") For Each c In .Range("A2", .Range("A" & .Rows.Count).End(xlUp)) '1行目からデータなら A1 に。 jy = Get和暦年度(c.Offset(, 1).Value, period) If Not dicJY.exists(jy) Then dicJY(jy) = Array(c.Value) Else w = dicJY(jy) ReDim Preserve w(LBound(w) To UBound(w) + 1) w(UBound(w)) = c.Value dicJY(jy) = w End If Next For Each c In .Range("A2", .Range("A" & .Rows.Count).End(xlUp)) jy = Get和暦年度(c.Offset(, 1).Value, period) dKey = jy & vbTab & c.Value dicLS(dKey) = Array(jy, c.Value, Join(dicJY(jy))) Next End With With Sheets("Sheet2") .Cells.ClearContents .Range("A1").Resize(dicLS.Count, 3).Value = _ WorksheetFunction.Transpose(WorksheetFunction.Transpose(dicLS.items)) .Columns("C").AutoFit .Select End With MsgBox "転記完了" End Sub Private Function Get和暦年度(dt As Date, period As Boolean) As String 'preriod true 1/1 〜 12/31 ' 4/2 〜 4/1 Dim stMMDD As String Dim inMMDD As String Dim wkdate As Date If period Then stMMDD = "0101" Else stMMDD = "0402" End If wkdate = dt inMMDD = Format(dt, "mmdd") If inMMDD < stMMDD Then wkdate = DateAdd("yyyy", -1, dt) Get和暦年度 = Format(wkdate, "ge") End Function (ぶらっと) ---- 上の方で私が質問した >B列に 名前 とあったので登場する人をすべて表示してるけど、もしかしたら 年 で 1行? >そうだとすると、B列の名前は何なんだろう。代表? これに対する回答がないので、今回のコードもすべての人を表示。 だけど、本当は、半平太さんが 2012/10/09 10:42 のレスで整理されたような形なんじゃないかな? もし、そうであって、かつ、VBAでやりたいのなら、上でアップしたコードを直すけど? VBAでやらないんだったらスルーして。 (ぶらっと) ---- ありがとうございます。 VBA出来ました。 半平太さんの整理した形にして頂けたらベストです。 VBAはほとんど手をつけたことがないのでどのような命令でどのような処理をしているのかわかりません。 出来れば解説をしてほしいですが、VBAはこれから勉強させて頂くことにします。 VBAを使ってどんなことが出来るのか、出来ないのか。 たとえばこの一覧に入力フォームをつけて名前・生年月日・性別などを記入できるようにして性別で(女性ならば赤字)供別出来るようにしたり出来ますか? あとVBAとアクセスはにているような気がするんですが同じではないですよね? どうぞ宜しくお願いいたします。 (zamasu) ---- VBAの方で話が落ち着きそうですが、口をはさんだ手前。。。 半平太さんの案で行くなら Sheet1の数式を 年表示から、年度表示に変えてしまえば良さそうに思います。 =YEAR(A2)-(TEXT(A2,"mmdd")<="0401") (HANA) ---- HANAさんありがとうございます。 出来れば性別で文字色を変えたり出来たらありがたいんですが、出来ないですよね? 条件付き書式を使うのかな? 出来たらよろしくお願い致します。 ---- VBAで対応するならお手伝いはいかようにもできるけど、関数等のエクセル機能で充分にいけそうなので 当面は、(HANA)さんのアドバイスの方向でトライしていくのがベストだと思う。 なので、しばらくVBAは棚にあげておこう。じゃないと、両面作戦で、(zamasu)さんが混乱しちゃうので。 (ぶらっと) ---- 性別をきちんと入力するセルがあるなら、条件付き書式で文字色を変更できますよ。 入力フォームに関しては、フォーム機能でも充分ではないかと思いますが… 一覧表の中にカーソルをおく→データ→フォーム で一覧表を入力できる画面が出てきます。 (コナミ) ---- 色々衝突してしまってますが。。。 >出来れば性別で文字色を変えたり出来たら 条件付き書式を使えばできると思います。 以下、Sheet2での考え方ですが まずは数式がどのようになっているか考えて下さい。 その後、今は名前が並んでいる所に性別が並ぶ様な式を作ってみて下さい。 2003までの場合、条件付き書式の設定の中で他シートを参照するのはひと手間必要ですので 同じシートに作業スペースを作って良ければ、一旦そこに性別を順番に並べ そのセルの値を使用して色を付けて行くのが簡単かもしれません。 >たとえばこの一覧に入力フォームをつけて名前・生年月日・性別などを記入できるようにして これは、Sheet1の事ですよね? 一般機能の「フォーム」機能で良ければわざわざ作らなくても良いとは思いますが。。。 メニュー→データ(D)→フォーム(O) にあります。 要望が増えていく様なら、VBAを勉強してみられても良いのではないかと思います。 (HANA) ---- いろいろと面倒をおかけしてすいません。とりあえずいろいろやってみます。 それで行き詰まったらまた相談に乗って下さい。 (zamasu) ---- 何とか出来ました。 まず、sheet1に性別行を付け加えました。 次にsheet3にsheet2の参照を作り各行間に行を挿入。 挿入した行に=VLOOKUP(D2,元データ!$A:$E,5,FALSE)という関数を入れます。 そして参照したセルに条件付き書式でvlookupセル=女の場合フォント色赤の条件を入れます。 回りくどい方法ですがなにぶんエクセルに着いての知識がそれほど豊富でないためこのような形になりました。ほかに簡単な方法があれば教えて下さい。 宜しくお願いいたします。 (zamasu) ---- あぁ、そうですね。 ・同姓同名だが性別が違う人がいる なんてパターンがなければ、VLOOKUP関数で引っ張ってくれば良いですね。 条件付き書式の条件式で他のシートを指定すると怒られますが ↓に回避案が書かれています。 http://www.excel.studio-kazu.jp/lib/e2k/e2k.html トピックスは違いますが、同じ対処が有効です。 1.名前の定義をして、定義した名前を使用する 2.INDIRECT関数を使用する すると、直接Sheet1のデータを見に行けるので 性別を表示する行を設けなくても良くなるかもしれません。 INDIRECT関数を使用した場合 =VLOOKUP(D2,INDIRECT("元データ!$A:$E"),5,FALSE)="女" こんな感じです。 名前を引っ張る数式を変更した =INDEX(INDIRECT("Sheet1!$E:$E"),COLUMN()-1+SUM($A$1:$A1))="女" こんなのでも良いかもしれませんが。 (HANA) ---- HANAさんありがとうございます。 せっかく教えて頂いたんですがちょっとむずかしいです。 すいません。 申し訳ないですがもうちょっとわかりやすく説明して頂けるとありがたいんですが。 本当にもうしわけないです。 (zamasu) ---- えっと、、、でしたら 半平太さんが載せて下さったデータを基にした ↓を使って書いてみます。 Sheet1 [A] [B] [C] [D] [ 1] 氏名 生年月日 西暦年 性別 [ 2] A 1976/2/5 1976 男 [ 3] B 1976/1/1 1976 男 [ 4] C 1976/1/1 1976 男 [ 5] D 1976/1/1 1976 女 [ 6] E 1977/3/9 1977 女 [ 7] F 1977/1/1 1977 女 [ 8] G 1977/1/1 1977 男 [ 9] H 1978/1/1 1978 女 [10] I 1979/1/1 1979 女 このデータから、変換して表示すると Sheet2 [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [ 1] 該当数 元号 [ 2] 4 S51 A B C D 男 男 男 女 [ 3] 3 S52 E F G 女 女 男 #N/A [ 4] 1 S53 H 女 #N/A #N/A #N/A [ 5] 1 S54 I 女 #N/A #N/A #N/A こうなりますね。 で、今はH列以降に性別を表示しているのですが まずは普通にVLOOKUP関数を使って =VLOOKUP(C2,Sheet1!$A:$D,4,FALSE) こんな式が入っています。 これを直接条件付き書式の設定で使えると良いのですが (たしか、2007以降は使えるのですが。。。) そのままでは使えないので、これにINDIRECT関数を組み合わせます。 =VLOOKUP(C2,INDIRECT("Sheet1!$A:$D"),4,FALSE) INDIRECT関数の使い方は、詳しくはヘルプ等で確認してください。 今回は、VLOOKUP内の「Sheet1!$A:$D」部分を「""」ではさんで INDIRECT関数の引数の中に入れているだけです。 同じ結果になることが確認できたら、今度は条件付き書式の条件 (書式を変更したい箇所で TRUE になる様)にしてみます。 =VLOOKUP(C2,INDIRECT("Sheet1!$A:$D"),4,FALSE)="女" ‾‾‾‾‾これを追加 Sheet2 [H] [I] [J] [K] [L] [ 1] [ 2] FALSE FALSE FALSE TRUE #N/A [ 3] TRUE TRUE FALSE #N/A #N/A [ 4] TRUE #N/A #N/A #N/A #N/A [ 5] TRUE #N/A #N/A #N/A #N/A もともと「女」だった所が TRUE になれば この式をコピーして、条件付き書式の条件として 使用すれば良いです。 操作中何か問題があれば どこまで出来て、何をした時に、どうなったか を教えてください。 (HANA) ---- お忙しい中丁寧に説明して頂いて誠にありがとうございます。 問題なく出来ました。 (zamasu) ---- ちょっと疑問に思ったんですが、「女・男」を「FALSE・TRUE」にすることによってどのように変わるのでしょうか? 自分的には「女・男」でも問題ないと思っていたのですが、ちょっとめんどくさい質問ですがお願いします。本当に申し訳ないです。 ---- ↑の書き込みは、zamasuさん? それとも 他の方? 今回は、条件付き書式の設定として使用する数式を作っています。 H列以降に、FALSE・TRUE を表示する数式を作るのが目的ではない。 ので、女・男 のままでは都合が悪かったのですが。。。? >参照したセルに条件付き書式でvlookupセル=女の場合フォント色赤の条件を入れます。 この部分ですね?/‾‾‾ 本当は =VLOOKUP(・・・)="女" と設定できれば、性別を表示するセル(間に一行ずつ入れていたセル)がいらないのですが 直接できなかったので、 そのセルに =VLOOKUP(・・・) の式を入れて 条件付き書式の設定では =そのセル="女" としましたね? 何か違うことをやっているでしょうか? 条件付き書式の設定で =VLOOUP(・・・)="女" と出来れば、H列以降のセルは必要なくなりますので、削除して下さい。 (HANA) ---- すいません。 何度も何度も丁寧に説明して頂いて申し訳ないです。 ついでにもう一つ。 男女以外にもチェック項目を一つ増やしたいのですが条件付き書式の時に反映されませんでした ある特定の人に灰色のパターンをつけたいのですが出来ませんでした。 複数の条件の場合は注意点などがあるのでしょうか? 何度も何度も申し訳ないです。 (zamasu) ---- 並び替えは並び替えコマンドで簡単にできますが、 並び替え後の結果です。 行 __A__ ____B____ ___C___ 1 氏名 生年月日 西暦年 2 A 1976/2/5 1976 3 B 1976/1/1 1976 4 C 1976/1/1 1976 5 D 1976/1/1 1976 6 E 1977/3/9 1977 7 F 1977/1/1 1977 8 G 1977/1/1 1977 9 H 1978/1/1 1978 10 I 1979/1/1 1979 並び替え 行 ___A___ __B__ _C_ _D_ _E_ _F_ 1 該当数 元号 2 4 S51 A B C D 3 3 S52 E F G 4 1 S53 H 5 1 S54 I これを結果とすると 男女チェック、他チェックも手間が増えますね。 チェック項目が2ある場合 男女、身長とか 同じ列で行う場合 男、高い 男、低い 女、高い 女、低い と4項目の条件が必要になります。 男女、身長で設定は別々では無理でしょう。(同じ列) 列を分けての設定なら可(別列) どちらにしてもチェック項目を設けなければ おじゃまむし ---- >ある特定の人に灰色のパターンをつけたいのですが とは、どの様な人でしょう? ●●さん? ○○さんと、××さんと・・・? あるいは、おじゃまむしさんが書いておられるように 特定のグループに所属する人? そして、その人が女性だった場合 さらに文字色も赤にするのでしょうか? まず、2003までの場合 条件付き書式に3つのパターンが登録できます。 そして、上側の書式が適用されると、その後の検証は行われません。 もう少し具体的には 条件1 女の場合 文字色赤 条件2 特定の人の場合 灰色パターン の様に設定した時、 対象セルが女性で特定の人だった場合 文字色は赤になりますが、パターンは灰色になりません。 対象セルが男性で特定の人だった場合 パターンは灰色になります。(条件1が満たされず、条件2が検証されTRUEになるので) 逆に 条件1 特定の人の場合 灰色パターン 条件2 女の場合 文字色赤 の様に設定した時は 対象セルが女性で特定の人だった場合 パターンのみ灰色。 対象セルが女性で特定の人で【ない】場合 文字色赤。 対象セルが男性で特定の人だった場合 パターンのみ灰色。 になります。 設定する書式の種類として 特定の人で女性だった場合・・・・・・・灰色パターン&文字色赤 その他の女性だった場合・・・・・・・・文字色赤 (男性で)特定の人だった場合・・・・・灰色パターン この三つがある場合は、順番に注意しながら このような 設定が必要です。 二番目と三番目の条件はどちらが先になっても構いません。 一番目と三番目の条件を見た場合、 先に書いた様に 条件が満たされなかった時だけ次の条件が検証されます。 一番目で 特定の人&女性 を確認しているので 三番目で、性別を確認する必要は無いので カッコ書きにしてあります。 なお、パターンを4つ以上設定したい場合は、マクロ(VBA)を使用する事になります。 (HANA) ---- 男女、身長で設定は別々では無理でしょう。(同じ列) 男なら〜青 女なら〜 赤 たかい〜黄 低い〜 で男低い場合優先されるほうで色が変わる という意味です。(上記) パターンを4つ以上設定したい場合 エクセル2007、2010なら設定できます おじゃまむし ---- すいません。 条件付き書式で複数条件の設定をするにはどういう式にしたらいいでしょうか。 いろいろ検索してみたのですが理解出来なくて。 初歩的な事ですいません。 宜しくお願いいたします。 (zamasu) ---- and関数で簡単にできました。 いろいろありがとうございます。 (zamasu) ---- 何度も何度も申し訳ないですが、sheet2の表は日付の検索のみの対応でしょうか。 もし日付の処を支店名を入れて同じような検索が出来れば教えて頂けないでしょうか。 それと誰もいない年の表示も出来るとありがたいんですが、どうかよろしくお願いします。 (zamasu) ---- >誰もいない年の表示も出来るとありがたいんですが に関しては、Sheet2のB列の所を数式で作成するのではなく 手入力されてはどうでしょう? あるいは、B2セルだけ手入力をして B3セル以降は数式で作成することにして 人が最後の年(何行目まで数式を入れるか)を決める。 B3 =DATE(YEAR(B2)+1,1,1) >日付の処を支店名を入れて同じような検索が出来れば この時の支店名は決まっているのでしょうか? それとも、Sheet1から自動的に作成した方が良いのでしょうか? (HANA) ---- いつもありがとうございます。 年表示の件了解致しました。 支店名はsheet1g列に入れてあるのですが、これをsheet3に表示させようと思います。 並び替え 行 ___A___ __B__ _C_ _D_ _E_ _F_ 1 該当数 支店名 2 4 い A B C D 3 3 ろ E F G 4 1 は H 5 1 に I このような形に持って行きたいのですが、自分なりに年表示の関数をいじってやったのですが、何人かは表示されるのですが、全員は表示されませんでした。 A2セルに=COUNTIF(G:G,J2) → 下にフィルコピー B列に支店名 C2に=IF($I2<COLUMN()-2,"",INDEX($A:$A,COLUMN()-1+SUM($I$1:$I1))) → 右と下にフィルコピー としたところ実際の半分くらいの数しか名前を表示できませんでした。 よろしくお願い致します。 (zamasu) ---- Sheet1のデータは、支店名毎に並んでいますか? そして、Sheet3のB列は Sheet1の支店名と同じ順にしてありますか? ↓半平太さんが最初に書いておられた式ですが (3) C2セル =IF($A2<COLUMN()-2,"",INDEX(Sheet1!$A:$A,COLUMN()-1+SUM($A$1:$A1))) この式を使った場合 ご呈示の例では Sheet3のA2セルに「4」となっていますので Sheet1の 2〜5行に 支店名い の人が並んでいないといけません。 Sheet3のA3セルに「3」となっていますので Sheet1の 6〜8行に 支店名ろ の人が並んでいないといけません。 ご呈示の式は↓になっていますが >C2に=IF($I2<COLUMN()-2,"",INDEX($A:$A,COLUMN()-1+SUM($I$1:$I1))) もともとA列に入れていた式がI列に入っている事になっていますし Sheet1を参照しているはずの $A:$A 部分が自シートを参照しています。 また、この式もC2セル以外の所に入っているのではないかと思われます。 正しい状況説明が無いと、問題箇所を見つけるのは困難です。 (HANA) ---- すいません。 勘違いしていじった式を乗せていました。 今の状況を説明しますと、 sheet1のG列に支店名を入れています。順番はsheet3のB列と一緒です。 sheet3のA2に=COUNTIF(元データ!G:G,B2) 下にフィルコピー C2 に=IF($A2<COLUMN()-2,"",INDEX(Sheet1!$A:$A,COLUMN()-1+SUM($A$1:$A1))) 右・下にフィルコピー となっております。 結果 最初の支店名害地番多いのですが35人の名前が入るはずのsheet3C2〜AK2には半分の人数しか入っておらず、次の支店名の半分という具合に違う支店名の人の名前が入っています。 (zamasu) ---- Sheet3のA2セルに「35」となっていますか? Sheet1には、1行目がタイトルで2行目からデータが入っていますか? Sheet1の2行目から36行目に 最初の支店名のデータがありますか? Sheet1のデータの配置・並びが 想定と違っているのではないでしょうか? そちらを確認してみて下さい。 (HANA) ---- すいません。僕の勘違いで別シートを参照していました。 いま同じファイルで生年・年度・支店名の振り分けをしているのでちょっと勘違いしただけで偉いことになってるtこと二気づかないでいました。 現在のファイルの状況 @元データsheet A列名前、B列生年月日、C列生年、D列年度、E列性別、F列特定の人チェック、G列支店名 A生年毎sheet 生年毎の一覧表 B年度毎sheet 年度毎の一覧表 C支店名sheet 支店名の一覧表 となっています。 支店名の一覧を作るときに元データを並び替えしないと表を作れないということがあり解決策を考えたところ、Csheet内に元データの支店順の参照データを作りそれを元に一覧を作れないかと考えました。 そして出来ればその一覧表を行列入れ替えた表にしたいのですが、出来ればそれも併せてよろしくお願い致します。 いつもお忙しい中すいません。 (zamasu) ---- 年毎・年度毎・支店毎 の元データは 別々のものかと思っていましたが すべて同じデータだったのですね。。。 >一覧表を行列入れ替えた表にしたい と言うのは、支店名を2行目に並べる って事ですか? とりあえず。。。。 支店名sheet(Sheet1)のA2セルから列方向へ、支店名を入力してください。 で、A3セルに =IF(COUNTIF(Sheet1!$G$1:$G$20,A$2)<ROW()-2,"",INDEX(Sheet1!$A$1:$A$20,SMALL(INDEX((Sheet1!$G$1:$G$20<>A$2)*9^9+ROW($1:$20),),ROW(1:1)))) に式をいれて、行列にフィルドラッグ。 この式だと、元データsheetの並びはどんな並びでも大丈夫です。 元データへのデータの追加方法をどの様にするのかにもよりますが ROW($1:$20) この部分は、元データシートのセルを参照させておいた方が良いかもしれません。 まずは、式を入れてやってみて下さい。 (HANA) ---- この数式だと元データのsheetの参照がされていないと思うのですが、どうなのでしょう。 一応A2セルに支店名を列方向へ入力し、A3セルに上記の数式を入れたのですが名にも表示されませんでした。 (zamasu) ---- あ。。。すみません。書き間違えてます。 >支店名sheet(Sheet1)のA2セルから列方向へ〜 これが 支店名sheetのA2セルから列方向へ〜 で、 >この式だと、元データsheetの並びは〜 の部分を この式だと、元データsheet(Sheet1)の並びは〜 と書いたつもりでした。 数式内の、Sheet1部分で、元データsheetを参照させて下さい。 (HANA) ---- この数式だと20行目までの参照ということでよろしいでしょうか。 20のところを参照したいところまでの数を入れればよろしいでしょうか? (zamasu) ---- はい。 20の所を増やしてください。 範囲は多めに取っておいてもらって良いです。 うまくいかないですか? まずは、レイアウトを式に合わせて確認してもらえると良いのですが。 (HANA) ---- ありがとうございました。 いろいろ無理なんでいいってしまって、それに答えて頂きましてありがとうございました。 たぶんもう改良は無いと思いますが万が一ありましたらまたよろしくお願い致します。 (zamasu) ---- うまくいきましたか。良かったです。 悩ませてしまった様で、すみませんでした。 (HANA) ---- またまたすいません。 改良したい点が見つかりましたので宜しくお願いいたします。 各参照シートの一覧の順番を五十音順にしたいのですが出来ますでしょうか? (zamasu) ---- そしたら、元の表を五十音順に並べて 年毎・年度毎の数式を 支店毎の数式の様にして下さい。 元の表のデータが増える事を考えると 前にも少し書きましたが、ROW関数の中身も 元表シートを参照させ 行を挿入して、データを追加する事にすると、良いのではないかと思います。 (HANA) ---- すいません。 アクセスでやった方が簡単にできたりするんですか? 使ったことないのですが。 (zamasu) ---- ---- さぁ、どうなんでしょう。 データ量にもよると思いますが 私なら、エクセルでやりますね。(VBAを使ってでも。) アクセスはあまり馴染みが無いので。。。 それにしても、うまくいかないのでしょうか? 表の確認前に並べ替えが必要なので そのあたりがネックでしょうか? VBAの勉強も、アクセスの勉強も どちらも一から始める必要があるのなら どちらでも良いのじゃないかと思います。 基本的な考え方は同じだと思いますので どちらもやってみて ご自身が簡単だと思える方で 作成されても良いかもしれません。 ただ、業務の事だと思いますので 後継者が育ちやすい方 と言うのも 選択基準になると思います。 未来の事なんて、わからないですけどね。 (HANA) ---- A B C D K L M N 1 氏名 生年月日 1974/4/2 2 A 27795 1 2 4 20 3 B 27760 3 5 6 7 4 C 27881 8 20 20 20 5 D 27851 9 20 20 20 6 E 28193 20 20 20 20 7 F 28126 20 20 20 20 8 G 28126 20 20 20 20 9 H 28491 20 20 20 20 10 I 28856 11 E2に =MIN(20,SMALL(INDEX((DATEDIF($L$1,$B$2:$B$21,"Y")<>ROW(D1))*10000+ROW($A$1:$A$20),0),COLUMN(A1))) 右に下へフィールコピーで上記のようになります =index(A2:A21,上記の数式) 上記結果の数値はA2:A21に対応行番号です。 行番号....A21は20に相当します よってA21にはshift+7で ' を入力しておく 支店名でなら生年月日を支店名に変更 男女色分けなら =index(性別の範囲,上記の数式)=男 とか =vlookup(K2,A1:A20,性別の列,0)=男 とか (ささやま) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201210/20121008174144.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97021 documents and 608149 words.

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