advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 37701 for IF (0.007 sec.)
[[20070226141715]]
#score: 1591
@digest: 3fcfa5ba37ee29a2cf919b6b53a3c891
@id: 29015
@mdate: 2007-02-26T14:07:06Z
@size: 10942
@type: text/plain
#keywords: 略略 (123256), fnd (76096), 略15 (51092), 略11 (26533), 略12 (24651), 略98 (15241), 略13 (13911), 振込 (10869), 額振 (10586), 付支 (9178), 容金 (7538), 骨折 (7425), 込金 (6889), flag (5368), 店コ (4310), data (3529), 支店 (3410), application (2334), 計等 (2283), match (2051), iserror (1806), 金額 (1540), j2 (1421), ド内 (1380), ・・ (1292), 計4 (1256), 弥太 (1254), elseif (1216), tbl (1189), range (1179), isempty (1144), 計3 (1054)
『和の逆算について(組み合わせ?) 』(alay) Excel2003のXPです。 以下のような既存のシートがあります。 A B C D E F 1 日付 支店 コード 内容 金額 振込 2 2/21 A 略 略 15201 3 2/21 A 略 略 11111 4 2/21 A 略 略 11215 5 2/21 A 略 略 15354 6 2/22 B 略 略 1201 7 2/22 B 略 略 15151 8 2/22 B 略 略 13001 9 2/22 C 略 略 15001 10 2/22 C 略 略 12201 11 2/24 A 略 略 9821 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・など続いています。 上記では少ないですが、日付と支店ごとに約20件ずつあります。 金額に関して重複はほぼありません。 また、この表に対して、A店、B店、C店から振り込みがあり、振り込みの金額だけしか分かりません。 (銀行の表示では大代表だけで、支店による分類が不可能) なので、振込金額から、どの支店からの振込で、どの項目の合計であるかを逐次計算しています。 (今のところは、金額差や額面により、どの支店からなのか経験で目星を付けています。) どの店の、未振込の項目の合計なのかを調べて、その振込の欄に日付を入れられたら最高です。 例えば、作業用セルとしてI2、J2に振り込まれた金額と日付を入れて、実行すると、該当する項目に日付が入るようにしたいです。 A B C D E F ・ ・ I J 1 日付 支店 コード 内容 金額 振込 ・ ・ 振込金額 日 付 2 2/21 A 略 略 15201 32147 2/27 3 2/21 A 略 略 11111 2/27 4 2/21 A 略 略 11215 2/27 5 2/21 A 略 略 15354 6 2/22 B 略 略 1201 7 2/22 B 略 略 15151 8 2/22 B 略 略 13001 9 2/22 C 略 略 15001 10 2/22 C 略 略 12201 11 2/24 A 略 略 9821 2/27 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ※振込は、支店ごとで、対する項目の日付は遅れたりすることもあります。 いくつか組み合わせに関するログを参考にしたのですが、なかなか条件に合わず困ってます。 どなたか、ご教授願います。 ---- 「振込金額」から検索して、日付を入力できればよろしいのでしょうか? 「データ→フォーム」で「検索条件」を設定することで、表内の行ごとに データが表示されます 該当のものが見つかったら、日付欄に入力する…では、いかがでしょうか? (Ohagi) ---- 2件の合計 3件の合計 4件の合計等 件数が不明 20件の中から 2件を取り出す =(COMBIN(20,2))=190 3件を取り出す 1140 4件を取り出す 4845 でこの中から マッチしたものを取り出し 合計のマッチしたもの 関数では無理しょう。 VBAなら ---- >実行すると と、あるからにはVBAをご所望でっしゃろなぁ。 せやけど、これは骨折れる作業ですワ。 5件が限度のVBAですけど、試してみる価値はありまっせぇ。 明日から忙しゅうなりますんで、上手いことイカンかったら、ポイしてくらはい。 (弥太郎) '------------- Sub test() Dim dic As Object, fnd_data As Long, j As Long, i As Long Dim m As Integer, fnd, ky Set dic = CreateObject("scripting.dictionary") fnd_data = Range("i2") tbl = Cells(2, 2).Resize(Cells(Rows.Count, 2).End(xlUp).Row - 1, 5) For i = 1 To UBound(tbl, 1) If IsEmpty(tbl(i, 5)) Then dic(tbl(i, 1)) = Empty End If Next i y = dic.Count ReDim x(1 To UBound(tbl, 1), 1 To 2) For i = 1 To UBound(tbl, 1) If dic.exists(tbl(i, 1)) And IsEmpty(tbl(i, 5)) Then j = j + 1 x(j, 1) = tbl(i, 1) x(j, 2) = tbl(i, 4) End If Next i ReDim fnd(1 To j, 1 To 1) For Each ky In dic.keys For i = 1 To j If x(i, 1) = ky Then m = m + 1 fnd(m, 1) = x(i, 2) End If Next i Call work(fnd, fnd_data, m) Next ky Set dic = Nothing End Sub Sub work(fnd, fnd_data, m) Dim i As Long, x As Long, y As Long, t As Long, f As Long, j As Integer Dim tbl, m_row, fnd_tbl, m_data As Integer, flag As Boolean mch_row = Application.Match(Range("i2"), fnd, 0) If Not IsError(mch_row) Then fst_data = fnd(mch_row, 1) n = Application.Match(fst_data, Range("e:e"), 0) Cells(n, 6) = Range("j2") End End If On Error Resume Next m_data = 2 Do While m_data <= 5 Select Case m_data Case 2 For i = 1 To m - 1 If fnd(i, 1) < fnd_data Then x = fnd_data - fnd(i, 1) m_row = Application.Match(x, fnd, 0) If Not IsError(m_row) Then flag = True ElseIf x = fnd(UBound(fnd, 1), 1) Then flag = True End If End If If flag Then Cells(Application.Match(fnd(i, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(x, Range("e:e"), 0), 6) = Range("j2") End End If Next i Case 3 For i = 1 To m - 2 If fnd(i, 1) < fnd_data Then For y = i + 1 To m If fnd(i, 1) + fnd(y, 1) < fnd_data Then x = fnd_data - (fnd(i, 1) + fnd(y, 1)) m_row = Application.Match(x, fnd, 0) If Not IsError(m_row) Then flag = True ElseIf x = fnd(m, 1) Then flag = True End If End If If flag Then Cells(Application.Match(fnd(i, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(fnd(y, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(x, Range("e:e"), 0), 6) = Range("j2") End End If Next y End If Next i Case 4 For i = 1 To m - 3 If fnd(i, 1) < fnd_data Then For y = i + 1 To m If fnd(i, 1) + fnd(y, 1) < fnd_data Then For t = y + 1 To m If fnd(i, 1) + fnd(y, 1) + fnd(t, 1) < fnd_data Then x = fnd_data - (fnd(i, 1) + fnd(y, 1) + fnd(t, 1)) m_row = Application.Match(x, fnd, 0) If Not IsError(m_row) Then flag = True ElseIf x = fnd(m, 1) Then flag = True End If End If If flag Then Cells(Application.Match(fnd(i, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(fnd(y, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(fnd(t, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(x, Range("e:e"), 0), 6) = Range("j2") End End If Next t End If Next y End If Next i Case 5 For i = 1 To m - 4 If fnd(i, 1) < fnd_data Then For y = i + 1 To m If fnd(i, 1) + fnd(y, 1) < fnd_data Then For t = y + 1 To m If fnd(i, 1) + fnd(y, 1) + fnd(t, 1) < fnd_data Then For f = t + 1 To m If fnd(i, 1) + fnd(y, 1) + fnd(t, 1) + fnd(f, 1) < fnd_data Then x = fnd_data - (fnd(i, 1) + fnd(y, 1) + fnd(t, 1) + fnd(f, 1)) m_row = Application.Match(x, fnd, 0) If Not IsError(m_row) Then flag = True ElseIf x = fnd(m, 1) Then flag = True End If End If If flag Then Cells(Application.Match(fnd(i, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(fnd(y, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(fnd(t, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(fnd(f, 1), Range("e:e"), 0), 6) = Range("j2") Cells(Application.Match(x, Range("e:e"), 0), 6) = Range("j2") End End If Next f End If Next t End If Next y End If Next i End Select m_data = m_data + 1 Loop m = 0: flag = False On Error GoTo 0 End Sub ---- 皆様、多数の返答ありがとうございます。 >Ohagiさん 当方が説明下手で申し訳ありません。 何が合計されているのか判らない状況なんです。 それを分析するマクロを作りたかったんです。 > さん 件数が不明なんです。 平均して約7〜10件というくらいしか判りません。 関数じゃ無理っぽいですね。 >弥太郎さん 素晴らしいマクロでございます。 これを元にして、20件まで対応できるマクロにアレンジしてみたいを思います。 しかし、歴戦のツワモノと思しき弥太郎さんが「骨折れる」とおっしゃるのですから、 私のような素人には無理なワケで・・・納得です。 どうもありがとうございました。 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/200702/20070226141715.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97065 documents and 608342 words.

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